TCP协议简析

1.TCP/IP五层模型

OSI七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
对应
TCP/IP五层模型:应用层、传输层、网络层、数据链路层、物理层
非底层编程可以把数据链路层和物理层合并理解为数据介质层,简化概念为四层模型
应用层:HTTP、FTP、Telnet、DNS、SMTP
传输层:TCP、UDP
网络层:IP、ICMP、RIP, IP地址,用于交换机分发数据包到目的地址
数据介质层:MAC地址,用于硬件之间的通信

2.数据封装格式

TCP协议简析
TCP头部:
TCP协议简析
源端口和目的端口:
进程的源端口一般是自动分配,不用太过关心,而目的端口用于寻找与之通信的目的进程
序号:
TCP发送较大数据时需要分段,而经过网络传输后,数据包的到达顺序可能不一致,所以每一段分配一个***,用于确保数据段的顺序
确认号:
用于建立连接的三次握手
数据偏移和窗口:
TCP首部除了前20个字节外,大小不固定,需要设置一个数据偏移量定位用户数据
窗口可以用来设置TCP发送和接受的数据大小,用于流量控制
检验和:
发送过程中有可能有数据丢失,检验和用于验证数据包是否完整
紧急指针:
TCP发送数据时,是按照顺序发送的,有一个窗口队列,每次发送窗口字段指定大小的数据,而如果设置了紧急指针,则该数据优先发送

3.TCP协议的特点:

1.TCP是面向连接的
2.TCP提供可靠性,实现了丢失重传(RTT估算, round-trip time)
3.TCP通过给每一个数据包管理一个***进行排序
4.TCP提供流量控制和拥塞控制:通告窗口、拥塞窗口
5.TCP连接是全双工的