介绍了个人对TCP协议格式的理解,及TCP的三次握手和四次断开机制。
开发Web,免不了遇到客户打不开网页,网页显示不正确等问题。通常工程师会收到一段log或用Wireshark截一个pacp。了解了TCP协议,及TCP的连接断开机制,对解析问题帮助很大。
进入正题前先啰嗦几句(熟悉的可略过)
网络开发遵从OSI 7层协议,但其实TCPIP 5层协议才是事实模型。见下图:
TCPIP 5层协议将上3层(应用层,表示层,会话层)糅合到了一起。还有TCIPIP 4层模型,还将下面2层(数据链路层,物理层)糅合到了一起
1.应用层(应用层,表示层,会话层):
用于表示数据,图像,加密压缩(ASCII,EBCDIC,JPEG),管理同步(操作系统,应用读取)。相关协议极其丰富:浏览网页HTTP,文件传输TFTP / FTP / NFS,邮件SMTP,远程登录Telnet,网络管理SNMP,名称管理DNS等
2.传输层:
用于可靠/不可靠方式传送数据。相关协议:TCP,UDP
3.网络层:
用于寻址。相关协议:IP,ICMP,ARP,RIP,EIGRP,OSPF等。
4.数据链路层:
用于数据传递给对方。相关协议:802.3/802.2,HDLC,FR,PPP,STP等。
5.物理层:
用于以物理介质传送数据。EIA/TIA-232 V.35/RJ45等。
(现在进入正题。下面是我个人对TCP封装字段的理解,权威的请查阅wikipedia或RFC793)