网络基础知识三(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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值