博客搬家,原地址:https://langzi989.github.io/2017/05/30/Unix网络编程之TCP的连接与建立过程/
最常用的传输层协议包括TCP和UDP两种,当然除此之外还有其他协议。UDP是一种既不面向连接有不可靠的传输层协议,而TCP是一种面向连接的可靠的传输层协议,为了达到这个目的,其在设计上使用了差错检测,重传,累计确认,定时器以及用于序号和确认好的字段等等。
TCP的特点
TCP协议有以下特点:
- 面向连接:TCP的连接不是一条电路的或者虚电路,其连接状完全保留在两个端系统中。
- 可靠传输:TCP连接在传输消息的过程中保证了数据的可靠性,即保证数据在传输过程中不会丢失。
- 点对点:一条TCP连接只能连接两个端点。
- 全双工:如果一台主机上的进程A和另一台主机上的进程B建立了一条TCP连接,那么应用层数据就可以从A进程发送到B进程的同时,B进程也可以发送数据到A进程。
TCP报文段结构
TCP报文段是由首部字段和一个数据字段组成的,数据字段中包含应用程序需要发送的数据。通常报文段中通过MSS(max segment size)来限制报文段数据字段的最大长度。报文段的结构如下: