TCP/IP 详解

本文详细介绍了TCP/IP网络的四层结构,包括EthernetII、IP、TCP和HTTP协议在各层的作用。同时,阐述了TCP的三次握手过程,确保可靠连接的建立,以及四次挥手实现连接的关闭。此外,提到了半连接队列和全连接队列在连接管理中的角色。
摘要由CSDN通过智能技术生成

一.TCP/IP 网络分层

TCP 是一个可靠的(reliable)、面向连接的(connection-oriented)、基于字节流(byte-stream)、全双工(full-duplex)的协议。发送端在发送数据以后启动一个定时器,如果超时没有收到对端确认会进行重传,接收端利用序列号对收到的包进行排序、丢弃重复数据,TCP 还提供了流量控制、拥塞控制等机制保证了稳定性。

通过wireshark抓包工具可以看到以下几个重要的部分

Ethernet II:网络接口层以太网帧头部信息
Internet Protocol Version 4:互联网层 IP 包头部信息
Transmission Control Protocol:传输层的数据段头部信息,此处是 TCP 协议
Hypertext Transfer Protocol:应用层 HTTP 的信息

1.HTTP 协议应用层

起始行 GET/HTTP/1.1

首部
Host: www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: application/json, text/javascript, /; q=0.01

实体 空

其他应用层协议 DNS ,SMTP,POP3,NTP,NFS

2.传输层

传输层的作用是为两台主机之间的「应用进程」提供端到端的逻辑通信,传输层用端口号来标识不同的应用程序

3.网络互连层(Internet Layer)

IP 协议是网络层的主要协议,TCP 和 UDP 都是用 IP 协议作为网络层协议。这一层的主要作用是给包加上源地址和目标地址,将数据包传送到目标地址。

4.网络访问层(Network Access Layer)

也叫网络接口层,以太网、Wifi、蓝牙工作在这一层,网络访问层提供了主机连接到物理网络需要的硬件和相关的协议。

分层结构图

TCP/IP网络分层图
二.TCP三次握手

三步握手
1.客户端:

1.默认CLOSED状态
2.客户端调用connect发送SYN同步报文给服务端,进入SYN-SEND状态,直到收到服务端的确认包
3.在SYN-SEND状态收到服务端的确认包后,发送确认服务端SYN报文的ACK包,进入ESTABLISHED状态,准备发送数据

2.服务端:

1.初始状态默认是CLOSED
2.服务端在调用listen后进入LISTEN状态 ,等待客户端的连接
3.在收到客户端的SYN报文后,回复确认ACK同时发送自己的SYN同步报文,进入SYN-RCVD状态,直到客户端的确认
4.在收到客户端的确认报文后,进入ESTABLISHED状态,此时双方可以传输数据,

三.四次挥手

四次挥手
客户端
1.调用close发送FIN报文,进入FIN-WAIT-1,此后不再发送数据给服务端
2.客户端收到ACK,进图FIN-WAIT-2
3.收到服务端的FIN后发送ACK,进入TIME-WAIT状态,等待2个MSL后进图CLOSED状态,完成断开服务端连接

服务端
1.收到FIN后回复ACK,进入CLOSE_WAIT
2.传输给客户端的数据都发送完毕后,发送FIN给客户端,此时进入LAST-ACK状态,等待客户端的ACK
3.收到ACK后进入CLOSED状态,完成断开客户端连接

四.半连接和全连接队列

半连接队列(SYN 队列):服务端收到客户端的 SYN 包,回复 SYN+ACK 但是还没有收到客户端 ACK 情况下,会将连接信息放入半连接队列。

全连接队列(Accept 队列):服务端完成了三次握手,但是还未被 accept 取走的连接队列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值