Administrator
发布于 2025-11-27 / 7 阅读
0
0

11月27日 传输层控制协议

本节内容

任务一:TCP协议

任务二:UDP协议

传输层的协议有哪些?

传输层的协议主要有两个:

  • TCP协议:传输控制协议

  • UDP协议:用户数据报协议

套接字是什么

套接字是连接应用程序和网络协议的“接口”。

套接字由IP地址 + 端口号组成。

两个应用程序

两个房子

IP地址

街道地址

端口号

门牌号

https://www.buhaoqi.com:80

https://101.35.209.200:80/

80 25 43

TCP协议的用途

用于在两个应用层进程(应用程序)之间建立连接(通信)。

为应用层提供传输服务。

  • 面向连接的

  • 可靠的

  • 数据流量可控

  • 全双工

面向连接是什么

面向连接就是建立连接。

在传输数据之前,双方必须先建立传输通道。

如何建立TCP连接

连接对象:建立在客户机进程和服务器进行

建立方式:3次握手

第一次握手:

发起者

发送

第一次握手

客户机

SYN=1,seq=x

第二次握手

服务器

ack=x+1,seq=y,ACK=1

第三次握手

客户机

SYN是什么

SYN是同步序列号

第一次握手

过程:客户机发送SYN=1的报文,发起连接请求

含义

说明

SYN

同步序列号

发起建立连接的请求 SYN=1表示发起连接请求;SYN=0表示连接已建立

seq=x

序列号

发送的字节流的初始序列号

第二次握手

过程:服务器回复SYN=1,ACK = 1的报文,表示服务器同意建立连列

含义

说明

ack=x+1

确认号

1.确认已成功接收 2.期待下一个数据序列号是x+1

seq=y

序列号

服务器发送的字节流的初始序列号

ACK=1

确认号

表示服务器的回应:当前我发送的是一个确认包

SYN=1

同步序列号

第三次握手

过程:客户机再次发送ACK=1的报文进行确认。

含义

说明

ack=y+1

确认号

1.确认已成功接收 2.期待下一个数据序列号是y+1

seq=x+1

序列号

发送的字节流的序列号

ACK=1

确认号

当前我发送的是一个确认包

TCP报文结构

基本构成:

  • 首部

  • 数据字段

关键字段:

  • 源端口:标识发送的应用程序

  • 目的端口:标识接收的应用程序

  • 序号:排序、确定位置

  • 确认号:可靠传输

TCP如何实现可靠数据传输

TCP采用了“重传肯定确认(ACK)”机制

  • 校验值:验证数据是否破坏

  • 接收方校验数据正确,则回复ACK=1

  • 如果遭到破坏则废弃

  • 如果未收到ACK,那么发送方会重发。

TCP使用滑动窗口协议进行流量控制。

TCP连接终止

通过“四次挥手”实现TCP连接的终止

第一次挥手

FIN=1 seq=u

请求关闭连接

第二次挥手

ACK=1,seq=v,ack=u+1

服务器回复ACK报文进行确认

第三次挥手

FIN=1,ack=1,seq=w,ack=u+1

服务器处理完所有数据后,发送FIN

第四次挥手

ACK=1,seq=u+1,ack=w+1

客户端回复ACK=1的报文确认

服务器收到客户机发送的“TCP确认报文段",就进入关闭状态。

任务二 UDP协议

特性

TCP

UDP

名字

传输控制协议

用户数据报协议

服务对象

应用层

应用层

功能

传输服务

传输服务

面向连接

无连接

可靠

不可靠

保证数据的完整、有序

可能丢包、数据破坏、不需要维护连接状态,节省开销

重传

不会重传

适用场景

可靠性高、数据量大、

实时性高、可靠性不高、数据少;分发多媒体应用数据的理想协议

示例

视频会议、聊天系统

UDP数据格式

UDP的数据格式由两部分组成:

  • UDP包头

  • UDP有效负载

主要字段

  • 源端口

  • 目的端口

  • 校验和

  • UDP长度


评论