网络协议那些事

TCP传输控制协议

2019-05-16  本文已影响14人  食梦狸猫

虽然TCP和UDP都使用相同的网络层(IP),但是TCP提供一种面向连接的,可靠的字节流服务。

面向连接意味着两个使用TCP的应用在彼此交换数据之前必须先建立一个TCP连接,因为TCP一个连接中仅有两方进行通信,所以广播和多播不能用于TCP。

TCP通过下列方式来提供可靠性:

TCP首部

1.20.40.png 1.20.44.png

每个TCP段都包含源端口号和目的端口号,用于寻找发送进程和接收进程。再加上IP首部中的源IP地址和目的IP地址可唯一确认一个TCP连接。

一个IP地址和一个端口号称为一个插口。插口对(客户IP地址,客户端口号,服务器IP地址,服务器端口号)四元组可唯一确定每个TCP连接。

序号用来标识从TCP发送端向TCP接收端端数据字节流,TCP用序号对每个字节进行计数。序号满后又从0开始。

当建立一个新连接时,SYN标志变1.序号字段包含由这个主机选择的该连接的初始序号ISN,主机要发送数据 的第一个字节序号为这个ISN+1(发送SYN消耗了一个序号)

确认序号包含发送确认端所期望收到的下一个序号。因此,确认序号是上次成功收到数据字节序号+1。

TCP为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。连接的每一端必须保持每个方向上的传输数据序号。

TCP首部中有6个标志比特位

TCP的流量控制是由每一端声明的窗口大小来提供的。

最常见的可选字段是最长报文大小,MSS。每个连接方通常都在通信的第一个报文段中指明这个选项,这指明本端能接收的最大长度的报文段。

上一篇下一篇

猜你喜欢

热点阅读