网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 80|回复: 1

计算机网络

[复制链接]

1

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-12-12 10:25:13 | 显示全部楼层 |阅读模式
本章概览




注意这个箭头

运输层在应用程序进程间提供逻辑的而非物理的通信。向上,运输层为应用层提供了socket接口;向下,运输层利用了网络层提供的物理通信能力,并且对其进行封装,以解决数据损坏和丢失的问题。
运输层使用UDP和TCP协议,它们有不同的特性;运输层分组被称为报文段(segment);同时,运输层实现在端系统而非路由器上。
限于篇幅,本篇将会讲解运输层的一些概念以及UDP的基本原理;至于好敌手TCP和TCP的看家本领(可靠数据传输&拥塞控制),将会放到后面的篇目中去。
多路复用与多路分解

将运输报文段中的数据交付给正确的套接字,这称为多路分解(demultiplexing);
封装首部信息、生成报文段并交付给网络层,这称为多路复用(multiplexing)。
说人话:多路分解就是向上和应用层对接,多路复用就是向下和网络层对接。
一个进程有若干套接字,每个套接字有唯一的标识符。想要发送一段信息,运输层会在源主机中从不同套接字中收集数据块,并为每个数据块封装上首部信息(而成为报文段),并递交到网络层。这是寄出的历程,是多路复用
要分解接收到的信息,运输层拿到一个报文段之后,会检查报文段携带的字段,由此标识出接收套接字,并且把报文段重定向到这个套接字上去。这是送达的历程,是多路分解



报文段的格式(这里没有IP信息)

总而言之,

  • 套接字有唯一标识符;
  • 每个报文段携带了特殊字段来指示其将要交付的套接字。
除此之外还要提到,要收发信息,套接字是需要与本机的端口号相关联的。并非所有端口号都能自由使用,0-1023范围的端口号被称为周知端口号,是保留给特定服务的。
TCP和UDP都能完成多路复用与分解,但是它们的实现方式有很大不同。
UDP的多路复用与分解



UDP套接字由一个二元组(目的IP地址,目的端口号)全面标识。交付数据报时,运输层不关心发件人,只根据目的端口号执行重定向。
这里再提一嘴IP地址:每台主机有一个IP地址,它是主机在网络层的唯一标识符。在报文段中还没有存储IP地址,IP地址是在进入网络层之后被封装到数据报中的。
TCP的多路复用与分解



TCP套接字由一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识。交付数据报时,运输层会根据以上所有四个值执行重定向(看人下菜碟)。
UDP探究

接下来具体介绍UDP的服务模型。
UDP提供了最为简化的设计,只完成了复用/分解功能以及少量的差错检测。由于没有握手流程,UDP被称为是无连接的。
但相对稳重的TCP,UDP还是有以下优点:

  • 关于发送什么数据以及何时发送的应用层控制更为精细(即打包即发,不用顾虑拥塞控制)
  • 无需连接建立,因而能够减少时延
  • 无连接状态,因此能够支持更多的活跃用户
  • 分组首部开销小。
以下是流行的因特网应用及对应运输协议:


UDP报文段结构



UDP报文段相对于前文刻画的报文段,增加了两个字段:长度,检验和。需要长度,是因为数据字段的长度是可变的;检验和则是用来检查报文段是否出错。
UDP检验和计算

UDP只提供差错检测,而无法提供差错恢复。
发送方的UDP先对报文段中的所有16比特字求和,对其中所有的溢出执行回卷;然后进行反码运算,就得到了检验和。
在接收方处,UDP对报文段中的所有16比特字以及前面生成的检验和做加法,如果有比特为0,则可知分组中出现了差错。
回复

使用道具 举报

1

主题

7

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2025-6-3 21:28:56 | 显示全部楼层
围观 围观 沙发在哪里!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-7-7 21:10 , Processed in 0.083636 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表