TCP协议笔记整理

一、TCP(传输控制协议)

  是一种面向连接的可靠传输协议。

TCP协议建立的连接是双向连接。

二、TCP 的特点

1、面向连接:在数据传输之前,收发双方需要预先建立一条逻辑通路。

2、可靠传输

确认机制(每收到一个TCP数据段,都需要发送一次确认报文。)

重传机制(超时重传,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。) 排序机制(传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱, 需要根据序列号字段进行重新排序。)

流控机制(滑动窗口机制):可以通过调节窗口大小(Windows)来对流量进行控制

三、TCP 报文段格式

1.    源端口和目的端口:各占 16 位,标识发送和接收进程。

    2.    序号:32 位,本报文段发送数据的第一个字节的序号。

    3.    确认号:32 位,期望收到对方下一个报文段的第一个数据字节的序号。

    4.    数据偏移:4 位,指出 TCP 报文段首部的长度。

    5.    保留:6 位,保留为今后使用。

    6.    控制位:

    ●    URG:紧急指针有效。

    ●    ACK:确认位(当该标记位置为1时,确认序列号有意义 。)

    ●    PSH:接收方应尽快将数据交付应用层。

    ●    RST:重置连接。

    ●    SYN:同步序号,用于建立连接。(是在TCP三次握手建立通道时的标记)

    ●    FIN:释放TCP连接。

    7.    窗口:16 位,告知对方自己的接收窗口大小。

    8.    校验和:16 位,用于检验 TCP 报文段的正确性。

    9.    紧急指针:16 位,指出本报文段中紧急数据的字节数。

四、面向连接

1、三次握手建立连接

1、客户端发送SYN报文,进入SYN_SENT 状态。

2、服务器收到SYN报文,回复SYN+ACK报文,进入SYN_RCVD 状态。

3、客户端收到 SYN+ACK报文,回复ACK报文,进入ESTABLISHED状态,服务器收到ACK报文也进入ESTABLISHED状态。

2、四次挥手释放连接

1、客户端发送 FIN 报文,进入 FIN_WAIT_1 状态。

 2、 服务器收到 FIN 报文,回复 ACK 报文,进入 CLOSE_WAIT 状态,客户端收到 ACK 报文进入 FIN_WAIT_2 状态。

 3、服务器发送 FIN 报文,进入 LAST_ACK 状态。

  4、客户端收到 FIN 报文,回复 ACK 报文,进入 TIME_WAIT 状态,服务器收到 ACK 报文后关闭连接,客户端等待 2MSL 后关闭连接。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值