前台网站模板,wordpress装在根目录文件夹中_如何通过域名直接访问?,电商付费推广有哪些,营销qq购买文章目录 1 运输层概述1.1 运输层存在的意义1.2 运输层协议概述1.3 主要端口号 2 运输层主要协议 UDP2.1 UDP的特点2.2 UDP首部格式2.3 UDP工作流 1 运输层概述
1.1 运输层存在的意义
之前我们讲网络层的时候#xff0c;已经可以将信息从一个主机传递到另一个主机了。
那么… 文章目录 1 运输层概述1.1 运输层存在的意义1.2 运输层协议概述1.3 主要端口号 2 运输层主要协议 UDP2.1 UDP的特点2.2 UDP首部格式2.3 UDP工作流 1 运输层概述
1.1 运输层存在的意义
之前我们讲网络层的时候已经可以将信息从一个主机传递到另一个主机了。
那么为什么我们还需要运输层呢
是因为我们两个主机通信的时候大多数情况是两个主机不同的进程在通信比如我们浏览器访问需要一个进程发邮件又需要一个进程。很多时候这些进程都是并行通信的。那么网络层是无法区分的实际的区分通信的不同进程就交给了运输层这也是运输层的重要作用——复用和分用
当然除了复用和分用运输层还提供一些其他的功能如差错检测等
应用层不同进程的报文通过不同的端口向下交付到运输层
运输层提供应用进程的逻辑通信——逻辑通信的意思是运输层之间的通信好像是沿着水平方向传送数据但事实上这两个运输层之间并没有一条水平方向的物理连接
所以总结来看
网络层和运输层的区别
网络层为主机之间提供逻辑通信而运输层为应用进程之间提供端到端的逻辑通信
1.2 运输层协议概述
运输层主要有两个不同的运输协议
TCP和UDP
他们各自的PDU运输协议单元如下
UDP它的PDU是TCP报文段
TCP它的PDU是UDP报文段或用户数据报
那么实际中运输层如何区分不同的进程呢通过抽象了端口号这种方式
由此可见两个计算机中的进程需要对方的IP地址还要知道对方的端口号为了找到对方计算机中的应用程序
不同端口号代表不同进程。
设计者们对端口号做了如下一些规定
1.3 主要端口号
两大类端口
1服务端使用的端口号
又分为两大类
熟知端口数值一般为0~1023
熟知端口号用来指派给TCP/IP最重要的一些程序如下图所示
登记端口数值为1024~49151
没有数值端口使用的使用的话必须登记
2客户端使用的端口号
短暂端口号数值49152~65535
仅在客户端进程运行时动态选择因此又叫做短暂端口号
下面分别讨论UDP和TCP
其中UDP比较简单
2 运输层主要协议 UDP
UDP只在IP数据报上增加了很少一点的功能即端口功能和差错检测的功能
2.1 UDP的特点
UDP是一种无连接协议
提供无连接服务 传送数据前不需要先建立连接不提供可靠交付 对方的运输层在收到UDP报文后不需要给出任何确认
尽最大努力交付没有拥塞控制UDP支持一对一一对多多对一和多对多的交互通信对于应用层的报文不合并不拆分多长就都发送UDP首部开销较小
2.2 UDP首部格式
UDP首部很简单就八个字节由四个字段组成每个字段长度都是2字节
源端口目的端口长度 数据报长度最小值是8检验和 检测传输中是否有错
2.3 UDP工作流
如果接收方UDP发现报文端口号不正确就丢弃该报文并由ICMP发送“端口不可达”差错报文给发送方
对于UDP的差错检测和IP数据报检测方法类似 首先将UDP首部中的检验和字段置为0以便进行计算。 将UDP伪首部添加到UDP数据包前面。伪首部包含了一些IP层的信息用于计算检验和。伪首部的格式如下 Source IP Address (32 bits)
Destination IP Address (32 bits)
Reserved (8 bits, 值为0)
Protocol (8 bits, UDP的协议值为17)
UDP Length (16 bits, UDP首部UDP数据的总长度)伪首部中的字段分别是源IP地址、目标IP地址、保留字段、协议字段UDP的协议值为17和UDP长度字段。这些字段一起构成了伪首部。 将UDP伪首部的各字段以及UDP首部和UDP数据中的所有16位字如果数据不是16位的倍数需要填充0使其满足16位字的条件进行按位求和。这意味着将它们视为16位整数将它们相加如果结果溢出则将溢出部分加到总和的末尾。 取总和的反码将所有位取反1变为00变为1并将结果存储在UDP首部的检验和字段中。 发送方将带有计算后的检验和字段的UDP数据包发送到目标主机。 接收方在收到UDP数据包后重复以上步骤计算接收方的检验和。 接收方将计算得到的检验和与UDP首部中的检验和字段进行比较。如果它们匹配说明数据包未损坏如果不匹配说明数据包可能已损坏或被篡改接收方可以选择丢弃这个数据包。
总之UDP检验和用于检测UDP数据包在传输过程中的完整性但它不提供数据包的可靠传输和重传机制。如果检验和不匹配接收方可以选择忽略数据包或向上层报告错误但UDP本身不会进行重传。这是与TCP不同的地方TCP提供了可靠的数据传输和重传机制。