本文, 根据计算机网络书籍和部分博客整理, 适合有一定计算机网络基础的同学阅读.
本文帮助理清 TCP 协议中的报文头中的关键字,以及 TCP 连接的建立和释放过程.
TCP
TCP,提供面向连接的服务,在传送数据之前必须先建立连接,数据传送完成后要释放连接。因此TCP是一种可靠的的运输服务,但是正因为这样,不可避免的增加了许多的开销,比如确认,流量控制等。对应的应用层的协议主要有 SMTP,TELNET,HTTP,FTP 等。
TCP 报文
先解释 TCP 报文及其关键字
编号 | 说明 | 大小 | 备注 | 示例 |
---|---|---|---|---|
1 | 源端口和目的端口 | 分别占 2 个字节 | 分别写入源端口和目的端口 | |
2 | 序号 | 4 字节 | TCP连接中传送的字节流中的每个字节都按顺序编号 | 一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始 |
3 | 确认号 | 4 字节 | 期望收到对方下一个报文的第一个数据字节的序号 | B收到了A发送过来的报文,其序列号字段是501,而数据长度是200字节,这表明B正确的收到了A发送的到序号700为止的数据。因此,B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为 |