【计算机网络-传输层】TCP/UDP、SYN泛洪攻击、三次握手四次挥手

简介: 【计算机网络-传输层】TCP/UDP、SYN泛洪攻击、三次握手四次挥手

1. UDP

  • UDP无连接的,减少开销和发送数据之间的延迟
  • UDP使用最大努力交付,即不保证可靠交付
  • UDP是面向报文的(直接将整个应用层传过来的报文封装),适合一次性传输少量数据的网络应用。
  • UDP没有拥塞控制(IP电话、腾讯会议),如果拥塞太过严重,直接重传报文~
  • UDP首部开销小,8个字节(8B)–16位源端口号(可有可无)–16位目的端口号(必须要有)–16位UDP长度(整个数据的长度)–16位UDP检验和(检验是否出错

2. TCP

2.1 特点

  • TCP是面向连接的传输层协议
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点
  • TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
  • TCP提供全双工通信:发送缓存(准备发送的数据&已发送但尚未收到确认的数据)接受缓存(按序到达但尚未被接受应用程序读取的数据&不按序到达的数据)
  • TCP面向字节流:TCP把应用程序看成仅仅是一连串的无结构的字符流(字节序列)

2.2 TCP报文段首部格式

  • 序号seq:TCP发送报文段中第一个字节的值
  • 确认号ack:期望收到对方下一个报文段的第一个字节的值
  • 数据偏移:TCP首部的长度
  • URG:URG = 1,紧急数据,让我先传(插队),冲冲冲~~~
  • 确认位ACK:ACK = 1时,确认号有效,ACK = 0,确认号无效,在连接建立后所有传送的报文段都必须吧ACK置为1
  • 推送位PSH:如果该位为1的话,就赋予了一个优先级,交给上面
  • 复位RST:大多数用来出现差错,重新连接
  • 同步位SYN:SYN = 1时,表示这是一个请求连接的报文段
  • 终止位FIN:FIN = 1,表明释放连接
  • 紧急指针:就是URG中紧急数据的长度

2.3 TCP的连接管理

TCP连接传输三个阶段:连接建立-----数据传送-----连接释放

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。

2.3.1 TCP三次握手

  • 第一次握手(SYN = 1、seq = x(随机),ACK = 0):客服端发送连接请求报文段,无应用层数据
  • 第二次握手(SYN = 1,ACK = 1,seq = y(随机), ack = x + 1):服务器为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据
  • 第三次握手(SYN = 0,ACK = 1, seq = x + 1, ack = y + 1):客户端为该TCP连接分配缓存和变量,并向服务器返回确认的确认,可以携带数据。

2.3.2 SYN洪泛攻击

2.3.3 TCP的4次挥手

  • 第一次挥手(FIN = 1,seq = u):客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接
  • 第二次挥手(ACK = 1,ack = u + 1, seq = v):服务器返回一个确认报文段,客户到服务器这个方向的连接就释放了–半关闭状态
  • 第三次挥手(FIN = 1,ack = u + 1, seq = w,ACK = 1):服务器发完数据,就发出连接释放报文段,主动关闭TCP连接
  • 第四次挥手(ACK = 1, seq = u + 1,ack = w + 1):客户端回送一个确认报文段,在等待计时器设置的2MSL(最长报文段寿命后),连接彻底关闭。

2.3.4 2MSL的由来

客户端发送的第四次挥手报文段,没有发送到服务器

这时候服务器端会再次发送第三次挥手的内容,请求关闭

这时候客户端收到请求,再次发送4次挥手,服务器收到,双方关闭

如果没有2MSL的话,客户端直接关闭,这时候服务端就会重复的发送第三次挥手,服务器无法进入关闭状态

3. TCP、UDP的区别


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
14天前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
48 4
|
14天前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
36 3
|
1月前
|
网络协议 算法 网络性能优化
|
29天前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
34 4
|
1月前
|
缓存 负载均衡 网络协议
面试:TCP、UDP如何解决丢包问题
TCP、UDP如何解决丢包问题。TCP:基于数据块传输/数据分片、对失序数据包重新排序以及去重、流量控制(滑动窗口)、拥塞控制、自主重传ARQ;UDP:程序执行后马上开始监听、控制报文大小、每个分割块的长度小于MTU
|
2月前
|
网络协议 前端开发 物联网
TCP和UDP区别?
本文首发于微信公众号“前端徐徐”,详细介绍了TCP和UDP两种传输层协议的核心概念、连接性和握手过程、数据传输和可靠性、延迟和效率、应用场景及头部开销。TCP面向连接、可靠、有序,适用于网页浏览、文件传输等;UDP无连接、低延迟、高效,适用于实时音视频传输、在线游戏等。
60 1
TCP和UDP区别?
|
2月前
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
60 10
|
6天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
7天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
27 10
|
9天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
36 10