TCP/IP协议栈

TCP/IP协议栈:

TCP分层:

TCP的通信过程:

TCP/IP和OSI模型的比较

相同点:1.两者都是以协议栈的概念为基础 2.协议栈中的协议彼此相互独立 3.下层对上层提供服务

不同点:1.OSI是先有模型;TCP/IP是先有协议,后有模型

2.OSI是国际标准,适用于各种协议栈;TCP/IP实际标准,只适用于TCP/IP网络

3.层次数量不同

TCP和UDP的对比:

字段

TCP

UDP

是否连接

面向连接

无连接

是否可靠传输

可靠传输

不可靠传输

连接目标个数

一对一

支持一对一.一对多.多对多传送

是否有序

有序传输

无序传输

首部大小

首部最少20字节.最大60字节

首部8字节

传输方式

面向字节流

面向报文

常见应用

邮件服务.文件下载.网站浏览.

语音聊天.视频聊天

 

TCP的特性:

工作在传输层 面向连接协议 全双工协议 半关闭 将数据打包成段,排序 确认机制 数据恢复,重传 错误检查 流量控制,滑动窗口 拥塞控制,慢启动和拥塞避免算法

TCP的三次握手:

5种状态 (CLOSED) (LISTEN) (SYN-SENT) (SYN-RCVD) (ESTAB-LISHED )

第一次握手(SYN):

客户端发送一个带有 SYN(同步)标志的数据包给服务器,并指定初始序列号(Sequence Number)。

这表明客户端请求建立连接,并且客户端进入 SYN_SENT 状态。

第二次握手(SYN + ACK):

服务器收到 SYN 数据包后,会回复一个带有 SYN/ACK(确认) 标志的数据包给客户端,确认收到客户端的请求。

同时,服务器也会指定一个初始序列号。

这表明服务器已经收到了客户端的连接请求,并同意建立连接。服务器进入 SYN_RCVD 状态。

第三次握手(ACK):

客户端收到服务器发来的 SYN/ACK 数据包后,会发送一个带有 ACK 标志的数据包给服务器。

这个 ACK 数据包不携带数据,仅用于确认服务器已经收到了客户端的确认请求。

客户端和服务器都认为连接已经建立,进入 ESTABLISHED 状态,可以开始进行数据传输。

TCP的四次挥手:

6种状态:(ESTAB-LISHED) (CLOSE-WAIT) (FIN-WAIT-2) (LAST-ACK) (TIME-WAIT) (CLOSED)

第一次挥手(FIN):

当一方(通常是客户端)希望关闭连接时,会发送一个带有 FIN(结束)标志的数据包给另一方(通常是服务器)。

这表明发送方已经完成了所有数据的发送,并请求关闭连接,但仍可以接收数据。发送方进入 FIN_WAIT_1 状态。

第二次挥手(ACK):

接收到 FIN 数据包的一方(通常是服务器)会回复一个带有 ACK(确认)标志的数据包给发送方,确认收到了关闭请求。

但是此时,接收方仍可能有未发送完成的数据,因此不能立即关闭连接,而是继续向发送方发送数据。

发送方收到 ACK 后进入 FIN_WAIT_2 状态,等待接收方发送完剩余数据。

第三次挥手(FIN):

当接收方(通常是服务器)确定不再有数据发送时,会发送一个带有 FIN 标志的数据包给发送方(通常是客户端)。

这表明接收方也已经完成了数据的发送,希望关闭连接。接收方进入 LAST_ACK 状态。

第四次挥手(ACK):

发送方(通常是客户端)收到 FIN 数据包后,会回复一个带有 ACK 标志的数据包给接收方(通常是服务器)。

这个 ACK 数据包表示发送方已经收到了接收方的关闭请求,并且也同意关闭连接。

发送方进入 TIME_WAIT 状态,等待一段时间(2 倍的最大报文段生存时间,MSL),以确保接收到最后一个 ACK 数据包。

UDP的特性:

1.工作在传输层 2.提供不可靠的网络访问 3.非面向连接协议 4.有限的错误检查 5.传输性能高 6.无数据恢复特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白了个白i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值