TCP协议:传输控制协议
面向连接,可靠,基于IP。 在IP中的报文协议号为6.因特网传输层协议
前20个字节固定
16位源端口号,16位目的端口号
32位 发送数据包中第一个字节的序列号:sequence number
32位确认号
4位数据偏移,;6位标志位;6位保留位; 16位window表示接受缓冲区的空间空间
16位校验和,16位紧急指针
选项,填充
data
数据偏移:以4字节为单位,故TCP首部(包括选项)最大长度=15*4个字节。
6位标志位分别为:
URG:紧急指针有效 ,ACK 即 确认号有效
PSH:push功能, RST:复位TCP连接
SYN:SYN报文 FIN:没有数据需要发送
window区告诉TCP连接端对自己能够接收的最大数据长度
TCP 使用三次握手协议建立连接:
主动主发送SYN连接请求,等待接收方回答SYN+ACK。
并最终对对方的SYN执行ACK确认。
例:
client 发送SYN (SEQ=x) 报文给 server .
server收到SYN报文,回应一个SYN(SEQ=y)ACK(ACK=x+1)
client收到SYN报文,回应一个ACK(ACK=y+1).
使用四次握手终止连接
client - FIN -> server
client <- ACK - server
client <- FIN -> server
client - ACK -> server
TCP重传策略:定时器
确认号指示:期待接收的下一个字节
比较:
TCP 面向连接,UDP 非
TCP传输速度快,UDP 慢
TCP有丢包重传机制,UDP无
TCP协议保证数据正确性,UDP可能丢包
UDP:
无连接协议,与TCP一样处理数据包,但不提供分组,组装,排序。
主要作用:将网络数据流量压缩成包
16位源端口号,16位目的端口号
16位UDP长度,16位UDP检验和
data
报头4个域,各占2个字节。
在TCP/IP协议层次模型中,位于IP层上。 IP层报头指明源主机和目的主机地址
UDP层报头指明主机上的源端口号和目的端口号。