网络基础知识三(TCP协议三次握手四次挥手、协议格式、可靠传输机制)

文章目录

一、三次握手与四次挥手

  • TCP传输特点:有连接、很可靠、面向字节流
  • 实现机制:数据包名称、连接双方的状态、包序管理

1. 三次握手流程图

2. 抓网络数据包的两种方式

  1. win:wireshark
  2. linux:tcpdump -i any port [端口] -s o -w result.dat //将抓包产生的数据保存在result.dat文件中。

3.分析TCP包序号(为什么需要包序号?)

答:为了可靠传输。
客户端与服务器各维护了一套序号,当Client发送数据包给Server时,消耗了客户端维护的序号,服务端告诉客户端自己收到数据的时候是确认客户端的序号 ;当Server发送数据包给Client时,消耗了服务器维护的序号,客户端告诉服务器自己收到数据的时候是确认服务器的序号。

4.四次挥手

  • MSL:报文的最大生存时间
    2MSL=丢失的ACK的MSL+重传FIN的MSL,本质上是为了让主动断开连接方能接收到被动断开连接方重传的FIN报文。

二、TCP协议格式

1.协议格式

2.内容解析

  • 序号:该条数据的起始序号
  • 确认序号:期望对方发送数据时从哪一个序号开始发送
  • 4位首部长度:指的是TCP头部的长度
符号解释
URG紧急标志位
ACK确认标志位
PSH发送数据标志位
RST重置连接标志位
SYN发起连接标志位
FIN断开连接标志位
  • 16位窗口大小:告知信息发送方,自己对消息的接收能力是多少,这个数值是动态变化的
  • 16位校验和:校验数据在传输的过程中是否失真
  • 16位紧急指针:配合URG标志位发送带外数据
  • MTU(Maximum Transmission Unit):最大传输单元,是网卡在传输数据帧的时候的一个限制值,这个限制值取决于网络传输设备的电气特征
  • MSS(Maximum Segment Size):最大报文段长度
    (1)其中,MSS+TCPHeader+IPHeader<=MTU
    (2)三次握手时,双方协商MSS的大小,取两者最小值
    (3)为什么要协商MSS:防止报文过大,在传输过程中数据丢失导致重传
    (4)MSS的大小会受到数据链路层MTU的影响

三、TCP可靠传输机制

TCP为了保证数据高效、可靠且有序的到达对端,采用了确认应答机制、超时重传机制、拥塞控制、捎带应答机制、延时应答机制、滑动窗口机制六个必要手段来保证TCP的可靠传输。

  1. 确认应答:接收方对发送方进行回复,确认已收到对方发送的信息
  2. 超时重传:超时重传的时间并不固定,是动态变化的
    RRT(Round-Trip Time ):往返时延
    RTO (Retransmission Timeout ):超时重传时间
    计算方法:RTO=(上次)RTT*i+(上上次)RTT*(1-i)
  3. 拥塞控制:慢启动、快重传、快恢复、拥塞避免
  4. 捎带应答:回复时,不仅是回复数据包,还发送少量数据
  5. 延时应答:通告发送方更大的窗口大小
    一旦接收方发送了一个0号窗口给发送方,则表示接收方的接受能力为0,而发送方接收到0号窗口之后,就不会在给接收方发送数据了。如何打破上述僵局:方法一:发送方发送窗口探测包;方法二:接收方主动通知窗口大小。
  6. 滑动窗口

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年4月5日
下一篇 2023年4月5日

相关推荐