IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 传输层协议 -> 正文阅读

[网络协议]传输层协议

1.TCP(传输控制协议):面对连接的可靠传输协议,协议号6

TCP:
优:可靠,安全(重传,流控),确认机制
缺:慢
应用场景:用于重要数据的传递
UDP:
优:快
缺:不可靠,不安全,无重传流控确认机制
应用场景:实时流量的传递(对带宽要求高),视频会议,电话流量

          TCP连接的建立过程:
                   三次握手:
                          1.本端向对端发送SYN报文,序列号为a,SYN置位
                          2.对端向本端发送SYN ACK报文,序列号为b,ACK确认号为a+1,SYN和ACK置位(ACK确认号确认哪个连接,告诉本端下一个发送的SYN序列号)
                          3.本端向对端发送ACK报文,序列号为a+1,ACK确认号为b+1,ACK置位
          TCP断开连接:
                  四次挥手:
                          1.本端向对端发送一个FIN请求断开连接
                          2.对端向本端发送ACK确认断开连接,自此单向TCP连接断开
                          3.对端向本端发送一个FIN请求断开连接
                          4.本端向对端发送ACK确认断开连接,自此双向TCP连接断开

          数据传输的可靠性:
                   重传机制、滑动窗口机制(流控)、确认机制


       端口号:0—65535                         (端口号用来区分不同的网络服务)
                 知名端口号:1——1023
                 非知名端口号:1024——65535
  常用端口号:         
               FTP:21/20
               HTTP:80
               Telnet(远程登录):23
               SMTP(简单邮件传输协议):25

TCP头部:
Source Port:16比特,源端口号,建立端到端连接时本端的端口号。 (标识哪个应用程序发送。)
Destination Port:16比特,目的端口号,建立端到端连接时对端的端口号。 (标识哪个应用程序接收。)
Sequence Number:32比特,序列号,标识一个TCP连接。
Acknowledgment Number:32比特,确认序列号,序列号+1. (是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。)
Data Offset:4比特,头部长度,以4字节为 单位。(即数据偏移,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,以32比特(4字节)为计算单位。最多有60字节的首部,若无选项字段,正常为20字节。)
Reserved:6比特,保留字段。(必须填0。)
URG:(U位)1比特, 紧急指针,取值为1时,表示数据需要紧急处理,紧急指针位有效。
ACK:(A位)1比特,确认序号位,取值为1时,表示确认序列号有效,对消息进行确认的。(只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。)
PSH:(P位)1比特,取值为1时,表示数据需要优先交给应用层去处理,(通常与U位同时使用,取值一般相同)。
(标识接收方应该尽快将这个报文段交给应用层。接收到PSH = 1的TCP报文段,应尽快的交付接收应用进程,而不再等待整个缓存都填满了后再向上交付。)
RST:(R位)1比特,取值为1时,表示请求重新建立连接。(重建连接标识。当RST=1时,表明TCP连接中出现严重错误(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立连接。)
SYN:(S位)1比特,同步序号标识,取值为1时,表示请求建立连接。(用来发起一个连接。SYN=1表示这是一个连接请求或连接接受请求。 )
FIN:(F位)1比特 发端完成发送任务标识,取值为1时,表示请求断开连接。(用来释放一个连接。FIN=1表明此报文段的发送端的数据已经发送完毕,并要求释放连接。
Window:16比特 窗口字段,确认窗口的大小。
(TCP的流量控制,窗口起始于确认序号字段指明的值,这个值是接收端正期望接收的字节数。窗口最大为65535字节。
Checksum:16比特,校验码。(包括TCP首部和TCP数据,是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
Urgent Pointer:16比特 紧急指针位,确定需要优先处理的数据的范围。(只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
Options:可选字段。(TCP协议最初只规定了一种选项,即最长报文段长度(数据字段加上TCP首部),又称为MSS。MSS告诉对方TCP“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节”。
新的RFC规定有以下几种选型:选项表结束,无操作,最大报文段长度,窗口扩大因子,时间戳。)

                        窗口扩大因子:3字节,其中一个字节表示偏移值S。新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小。
                        时间戳:10字节,其中最主要的字段是时间戳值(4字节)和时间戳回送应答字段(4字节)。

选项确认选项:

          Padding:填充字段,用于保证每个可选字段达到4字节。(用来补位,使整个首部长度是4字节的整数倍。) 
  

2.UDP(用户数据包协议):协议号17,面向无连接的不可靠传输协议,需要应用为它提供数据处理
                  UDP不提供重传机制,占用资源小,处理效率高
                  一些时延敏感的流量,如视频,语音等,通常使用UDP作为传输协议,可以依据报文首部中的序列号字段进行重组

UDP头部:
Source Port:源端口号,2字节,标识哪个应用程序发送(发送进程)。
Destination Port:目的端口号,2字节,标识哪个应用程序接收(接收进程)。
Length:长度,2字节,UDP首部加上UDP数据的字节数,最小为8。
Checksum:校验和,2字节,覆盖UDP首部和UDP数据,是可选的。

传输层提供了主机应用程序进程之间的端到端的服务,基本功能如下:

1、分割与重组数据。

2、按端口号寻址。

3、连接管理。

4、差错控制和流量控制,纠错的功能。

传输层要向会话层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。

端口分类:
1、硬件端口:CPU通过接口寄存器或特定电路与外设进行数据传送,这些寄存器或特定电路称之为端口。其中硬件领域的端口又称接口,如:并行端口、串行端口等。

2、网络端口:在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。

3、软件端口:缓冲区。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 11:17:36  更:2021-10-22 11:17:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 12:10:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码