传输层
传输层使用TCP和UDP两种协议
协议 | 用途 | 比较 |
---|
TCP(IP报头内部协议编号6) | 用于邮件、文件的发送以及Web浏览器等追求可靠性的应用程序 | 可靠性高,处理负荷大,即时性慢 |
UDP(IP报头内部协议编号17) | 用于语言通话(VoIP),多目通信视频发布、名称解析、DHCP等追求即时性的应用程序 | 可靠性低,处理负荷小,即时性快 |
名称 | 长度 | 用途 |
---|
源端口 | 16位 | |
目的端口 | 16位 | |
报头长度 | 16位 | |
校验和 | 16位 | |
名称 | 长度 | 用途 |
---|
源端口 | 16位 | 识别应用程序。端口号分三种:1. 0~1023,系统端口,由ICANN中IANA管理,用于服务器应用程序;2. 1024~49151,用户端口,由ICANN中IANA管理,用于生产商特有的应用程序;3. 49152~65535,动态和/或私有端口,在客户端随机分配 |
目的端口 | 16位 | 识别应用程序 |
序列号 | 32位 | 排列数据发送顺序,注意,序列号共4G,用完之后即归零。 |
ACK号 | 32位 | |
数据偏移量 | 4位 | |
保留区域 | 6位 | |
控制位 | 6位 | 有6个标志,1. URG,表示紧急的标志;2.ACK,表示确认响应的标志;3. PSH,将数据交给应用程序的标志;4. RST,强制断开连接的标志; 5. SYN,表示释放连接的标识; 6. FIN,表示结束连接的标识 |
窗口大小 | 16位 | |
校验和 | 16位 | |
紧急指针 | 16位 | |
选项头 | | 有MSS(Maximum Segment Size,最大报文段长度),三次握手将MSS植入选项头中,当双方节点的MSS值不一样时,取小的那一方使用。 |
TCP原理
- 三次握手
- 四次挥手
节点收到FIN标识后会等待一段TIME-WAIT时间,超过该时间之后才关闭。这是为了避免重复使用同一序列号和端口,相当上了一道保险
TCP高效的机制
介绍其中三个核心部分
名称 | 用途 |
---|
确认机制 | 通过序列号和ACK相互运作来保证数据的可靠性,ACK好表示接收信息的节点当前已经收到了多少数据,它会返回一个“序列号+数据长度”的数值。 |
超时重传 | 也用到序列号和ACK,服务器等待时间叫作RTO(Retransmission Time out,重传超时),RTO是根据报文段的往返时间RTT(Roud Trip Time,往返延迟时间)自动计算出来的。 |
流量控制机制 | 用于提高传输效率,控制批量接收报文段, |