理解TCP协议

TCP协议(传输层)

  • 用于应用程序之间的通信。
  • 连接的建立是经过三次握手,断开的时候四次挥手。
  • TCP 包头很复杂,但是主要关注五个问题,顺序问题,丢包问题,连接维护,流量控制,拥塞控制

TCP数据包

IP 数据包在以太网数据包的负载里面,它也有自己的头信息,最少需要20字节,所以 IP 数据包的负载最多为1480字节。

TCP 数据包在 IP 数据包的负载里面。它的头信息最少也需要20字节,因此 TCP 数据包的最大负载是 1480 - 20 = 1460 字节。由于 IP 和 TCP 协议往往有额外的头信息,所以 TCP 负载实际为1400字节左右。

 (图片说明:以太网数据包的负载是1500字节,TCP 数据包的负载在1400字节左右。)

TCP 的三次握手

TCP 的连接建立,我们常常称为三次握手。

A:您好,我是 A。

B:您好 A,我是 B。

A:您好 B。

我们也常称为“请求 -> 应答 -> 应答之应答”的三个回合。

这里面完成了客户端A的请求->收到回复和服务端B的请求->收到回复两个过程。

TCP的四次挥手

A:B 啊,我不想玩了。

B:哦,你不想玩了啊,我知道了。

这个时候,还只是 A 不想玩了,也即 A 不会再发送数据,但是 B 能不能在 ACK 的时候,直接关闭呢?当然不可以了,很有可能 A 是发完了最后的数据就准备不玩了,但是 B 还没做完自己的事情,还是可以发送数据的,所以称为半关闭的状态。

这个时候 A 可以选择不再接收数据了,也可以选择最后再接收一段数据,等待 B 也主动关闭。

B:A 啊,好吧,我也不玩了,拜拜。

A:好的,拜拜。

这里面完成了

A发送停止请求->收到确认回复

B接收完剩下的工作后也发送停止请求->收到确认回复

这两个过程

 TCP状态机

TCP/IP 

TCP/IP 意味着 TCP 和 IP 在一起协同工作。

TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。

IP 负责计算机之间的通信。

TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。

IP 负责将包发送至接受者。

 笔记资源参考:TCP详解

猜你喜欢

转载自www.cnblogs.com/kumata/p/9207535.html