TCP原理
2023-02-04 23:26:05 1 举报
一张图全面解析tcp原理
作者其他创作
大纲/内容
以太网头
IP头
TCP头
GET/HTTP/1.1
服务器端
分层的好处:1、各层独立,依赖降低,各层之间可以标准化接口,上下层之间不影响。2、灵活性好,专门的设备或者驱动只解析对应的协议3、方便测试和维护,4、标准化,能分清楚每一层的职责
告知服务器,客户端 已经建立链接
5、物理层链接
OSI网络体系结构各层协议:(1)应用层:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS(注:DNS使用的传输协议既可为TCP又可为UDP)(2)表示层: 文本:ASCII,EBCDIC 图形:TIFF,JPEG,GIF,PICT 声音:MIDI,MPEG,QUICKTIME(3)会话层:Socket、NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK会话协议)、SCP(4)传输层:TCP、UDP、SPX (5)网络层:IP、IPX、ICMP、RIP、OSPF(Open Shortest Path First开放式最短路径优先) (6)数据链路层:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继 (7)物理层:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45
FIN seq=y+1
服务器端接收HTTP数据包
1、发送,HTTP协议封装数据包
应用层
9、HTTP报文解析
2、TCP头,端口号、序列号等
传输层
8、TCP报文解析
3、增加IP头
网络层
7、IP报文解析,传输数据包、确定路由
4、增加以太网头包含MAC地址等
数据链路层
6、解析网络中的MAC信息
申请关闭链接FIN_WAIT_1状态
x还是客户端生成的序列号。y是握手时服务器生成的序列号
三次握手
四次挥手
接收到关闭申请CLOSE_WAIT状态
服务器清理客户端的信息
客户端开始写入数据
font color=\"#4d4d4d\
服务器监听listen()接受到请求SYN_RCVD
客户端发送HTTP数据包
ack=x+2
网络接口层
SYN_SENT
读写数据
客户端
ack=y+2
为应用程序提供服务
数据格式转化、数据加密
建立、管理、维护会话
建立、管理、维护端到端的链接,端口(65535)
IP选址及路由选择,以太⽹、Wifi、蓝⽛
提供介质访问和链路管理
电器设备、集成线器等
三次握手过程详细说明:1、客户端发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,并且将报文中的SYN字段置为1,表示需要建立TCP连接。(SYN=1,seq=x,x为随机生成数值);2、服务端回复客户端发送的TCP连接请求报文,其中包含seq序列号,是由回复端随机生成的,并且将SYN置为1,而且会产生ACK字段,ACK字段数值是在客户端发送过来的序列号seq的基础上加1进行回复,以便客户端收到信息时,知晓自己的TCP建立请求已得到验证。(SYN=1,ACK=x+1,seq=y,y为随机生成数值)这里的ack加1可以理解为是确认和谁建立连接;3、客户端收到服务端发送的TCP建立验证请求后,会使自己的序列号加1表示,并且再次回复ACK验证请求,在服务端发过来的seq上加1进行回复。(SYN=1,ACK=y+1,seq=x+1)。
TCP网络分层
第一次接收关闭通知CLOSE_WAIT状态
表示层
会话层
物理层
时间戳
数据处理完毕LAST_ACK状态
四次挥手原理:第1次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传送,客户端进入FIN_WAIT_1状态;第2次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态;第3次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态;第4次挥手:客户端收到FIN后,客户端t进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,服务端进入CLOSED状态,完成四次挥手。其中:FIN标志位数置1,表示断开TCP连接。
ack=x+3
font color=\"#333333\
IEEE802.1A IEEE 802.2--IEEE 802.11
ack=y+1
确认建立链接
读取信息
0 条评论
回复 删除
下一页