计算机网络:2、TCP和UDP

2、TCP和UDP

简介

  • TCP(transmission Control Protocol):是一种通信标准,它使应用程序和计算设备能够在网络上交换消息。它的设计目的是在互联网上发送数据包,并确保数据和信息在网络上的成功传递。
  • UDP(the User Datagram Protocol):是一种跨Internet的通信协议,特别用于时间敏感的传输,如视频播放或DNS查找。它通过在数据传输之前不正式建立连接来加快通信速度。

TCP

  1. TCP是面向连接(虚连接)的传输层协议。
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
  3. TCP提供可靠交付的服务,无差错、不丢失、不重复、按需到达。
  4. TCP提供全双工通信(发送缓存,接收缓存)。
  5. TCP面向字节流,TCP把应用程序交下来的数据看成仅仅是一连串的无结构字节流

报文段首部格式:

  • 源端口(2B)
  • 目的端口(2B)
  • 序号(4B):在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本表文段所发送的第一个字节的序号
  • 确认号(4B):期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1位置的所有数据都已正确收到。
  • 数据偏移(4bit):首部长度,TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B为单位,即一个数值是4B。
  • 控制位(6bit)
    • 紧急位URG:URG=1时,表明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用再缓存里排队,配合紧急指针字段使用。
    • 确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
    • 推送位PSH:PSH=1时,接收方尽快交付应用进程,不用再等到缓存存满再向上交付。
    • 复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。
    • 同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文。
    • 终止位:FIN=1时,表明此报文段发送发数据已发完,要求释放链接。
  • 窗口(2B):指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。
  • 检验和(2B):检验首部+数据,检验时要加上12B伪首部,第四个字段为6(TCP为6,UDP为17)。
  • 紧急指针(2B):URG=1时才有意义,指出本报文段中紧急数据的字节数。
  • 选项(可变长度):最大报文段长度MSS、窗口扩大、时间戳、选择确认......
  • 填充(保证4B的整数倍)

连接建立

TCP连接管理

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

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

建立连接过程(三次握手)

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

连接释放过程(四次挥手)

  1. 客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。FIN=1,seq=u
  2. 服务器端回送一个确认报文段,客户到服务器这个方向的连接释放了。ACK=1, seq=v, ack=u+1
  3. 服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。FIN=1, ACK=1, seq=w, ack=u+1
  4. 客户端回送一个确认报文段,在等到实践等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。ACK=1, seq=u+1, ack=w+1

可靠传输

TCP可靠传输的机制:校验;序号;确认;重传。

  • 超时重传:TCP咋发送方在规定时间内没收到确认就要重传已发送的报文段。TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)。
  • 每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。连续收到3个对于某序号小的报文段的确认,则认为其丢失,重传报文段(快速重传)。

流量控制

流量控制:让发送方慢点,要让接收方来得及接收。

TCP利用滑动窗口机制实现流量控制。

在通信过程中,接收方根据自己接收缓存的大小,动态的调整发送方的发送窗口大小,即接收窗口rwnd,发送方的发送窗口的大小=min(接收窗口rwnd, 拥塞窗口cwnd)

TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器 。若持续计时器设置的时间到期,就发送一个零窗口探测报文段。接收方收到探测报文段时给出现在的窗口值。

拥塞控制

出现拥塞的条件:对资源需求的综合>可用资源。

四种算法:慢开始、拥塞避免、快重传、快恢复。

假定:

  1. 数据单方向传递,而另一个方向只传送确认
  2. 接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度,发送窗口 = Min{接收窗口rwnd, 拥塞窗口cwnd}

UDP

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。

UDP的主要特点:

  1. UDP是无连接的,减少开销和发送数据之前的时延。
  2. UDP使用最大努力交付,即不保证可靠交付
  3. UDP是面向报文的,适合一次性传输是少量数据的网络应用。
  4. UDP无拥塞控制,适合很多实时应用。
  5. UDP首部开销小,为8B(16位源端口号,16位目的端口号,16位UDP长度,16位UDP校验和),TCP为20B。
    请添加图片描述

参考

【王道计算机考研 计算机网络】 https://www.bilibili.com/video/BV19E411D78Q/?p=140&share_source=copy_web&vd_source=a2b60e3364b59c2f5872cb3058666cae

相关推荐
妮妮学代码3 小时前
c#:TCP服务端管理类
java·tcp/ip·c#
猿究院--冯磊4 小时前
计算机网络模型
计算机网络
云手机掌柜4 小时前
Tumblr长文运营:亚矩阵云手机助力多账号轮询与关键词布局系统
大数据·服务器·tcp/ip·矩阵·流量运营·虚幻·云手机
.Shu.7 小时前
计算机网络 HTTPS 全流程
网络协议·计算机网络·https
猿究院--冯磊14 小时前
计算机网络--HTTP协议
网络协议·计算机网络·http
三坛海会大神5551 天前
计算机网络参考模型与子网划分
网络·计算机网络
iナナ1 天前
传输层协议——UDP和TCP
网络·网络协议·tcp/ip·udp
搬码临时工1 天前
端口映射原理操作详解教程:实现外网访问内网服务,本地路由器端口映射公网ip和软件端口映射域名2种方法
网络·tcp/ip·智能路由器
Mr_Xuhhh1 天前
NAT、代理服务、内网穿透
网络·网络协议·http·https·udp·智能路由器