为什么位于网络边缘的主机才有运输层?
传输层为应用层提供通信服务,应用层属于面向通信部分的最高层,用户功能的最底层。传输层的功能是为相互通信的应用程序进程提供逻辑通信。对于应用进程的通信,通俗的说法就是两台主机通信,也叫端到端通信。逻辑通信是指传输层之间的通信可以看作是没有物理连接的水平通信。
当网络边缘部分的主机通过网络核心部分进行通信时,只有网络边缘部分的主机的协议栈有传输层,而网络核心部分没有,只使用接下来的三层:网络层、数据链路层和物理层。
一般来说,传输层有两个主要功能:
1、为应用程序进程提供端到端的逻辑通信
2、接收报文错误检测。
5.1.2传输层的两个主要协议
首先,什么是传输协议数据单元TPDU?两个对等传输实体通信时传输的数据单元。
1,面向连接的TCP:传输控制协议
只提供尽力而为的、可靠的和面向连接的服务,所以TPDU的报头中的开销很大,并且占用了大量的处理器资源。逻辑信道是相当全双工和可靠的,但信道不是。;我不知道它通过哪些路由器,而路由器不知道。;我不知道传输层是否已经建立了连接。传输的TPDU是TCP数据段。TCP不提供广播和多播服务。
2、无连接UDP:用户数据报协议
传输数据之前不需要建立连接,逻辑信道是不可靠的信道。传输的TPDU是UDP消息。一方的传输层在收到UDP消息后不需要给另一方任何确认。即便如此,有时UDP是最有效的工作。
5.1.3运输层端口
主机如何判断数据包属于哪个进程?比如网页,或者?使用进程标识符。
并且可以将端口想象成通信的端点。端口是传输层和应用层之间的服务接口。传输层的复用和解复用功能只能通过端口实现。
软件端口:协议栈之间的抽象协议端口,以及应用层中各种协议进程与传输实体交互的地址。
硬件端口:路由器和交换机上的端口,以及不同硬件设备之间的交互接口。
TCP端口用一个16位的端口号来标识,这个端口号只有本地意义,只是为了标记这台电脑应用层的进程。
三种类型的端口:
1、熟悉港口
2.注册端口号
3、客户端口号/短端口号
5.2用户数据报协议UDP
UDP概述
UDP在IP数据报中增加了端口功能和错误检测功能。;这就是全部。
主要特点:
NUDP是无连接的,即发送数据前不需要建立连接。
NUDP使用尽力传送,即不保证可靠的传送,并且不使用拥塞控制。
UDP是面向消息的。UDP没有拥塞控制,非常适合多媒体通信。要求。
NUDP支持一对一、一对多、多对一、多对多的交互通信。
nUDP的报头开销很小,只有8个字节。
5.2.2UDP报头格式
当计算校验和时,"伪标题"和UDP用户数据报临时连接在一起。伪报头仅用于计算校验和。
5.3传输控制协议TCP概述
TCPTCP的主要特性
1、面向连接(虚拟连接)
2.每个TCP连接只有两个端点,并且是点对点和一对一的。
3.提供可靠的交付服务
4.提供全双工服务。
5、面向字节流
TCP根据对方给定的窗口值和当前的网络拥塞程度(UDP发送的消息长度由应用进程给定)来决定一个消息段应该包含多少字节,所以它不我不在乎应用程序进程一次向TCP缓存发送消息需要多长时间。如果太长,它会划分数据块,重新发送。
TCP连接
TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端点称为套接字或套接字。
套接字是通过连接端口号和IP地址形成的。
每个TCP连接都由通信两端的两个端点(即两个套接字)唯一确定。
5.4可靠传输的工作原理
5.4.1停止等待协议
这种可靠的传输协议通常被称为自动重复请求(ARQ)。
ARQ表示重传请求是自动的。接收者不需要请求发送者重发错误的分组。
停止等待协议的优点是简单,缺点是信道利用率太低。利用管道传输连续发送多个包,可以提高信道利用率。
5.4.2连续ARQ协议
滑动窗口协议,图(a)显示了发送方维护的发送窗口。发送方可以连续发送五个包,每发送一个包都不用停下来等待对方的确认。
因为信道上总是有不间断的数据传输,所以这种传输可以获得较高的信道利用率。
接收端采用累积确认,即不需要对接收到的数据包逐一发送确认,而是对按顺序到达的最后一个数据包发送确认,这意味着直到这个数据包的所有数据包都已被正确接收。
优点:易于实现,即使确认丢失,也无需重发。
缺点:接收方已经正确接收到的所有数据包的信息无法反映给发送方。
Go-back-N:您需要再次返回以重新传输已经发送的N个数据包。
例如,发送方发送了前五个数据包,中间的第三个数据包丢失。这时,接收器只有前两个数据包可以被确认。发送者可以Idon'我不知道最后三个数据包的位置,所以他必须再次重发所有最后三个数据包。
TCP可靠通信的具体实现:
TCP连接在两端都有两个窗口:发送和接收。这四个端口都是动态变化的。
TCP可靠传输机制由字节序列号控制,所有确认都基于序列号而不是消息段。
TCP连接的往返时间RTT不固定。有必要使用特定的算法来估计合理的重传时间。
5.5TCP数据段的报头格式
源端口和目的端口字段中的——各为2个字节。端口是传输层和应用层之间的服务接口。传输层的复用和解复用功能只能通过端口实现。
序列号字段——占用4个字节。TCP连接中传输的数据流中的每个字节都有编号。序列号字段的值是指本段发送的数据的第一个字节的序列号。
确认号字段——占用4个字节,这是预期从另一方接收的下一个消息段的数据的第一个字节的序号。
数据偏移(即报头长度)——占用4位,表示TCP数据段的数据起点距离TCP数据段的起点有多远。amp的单位"数据偏移"是一个32位字(按4个字节计算)。
检查和——占2个字节。验证和字段验证的范围包括表头和数据。计算校验和时,应该在TCP数据段前面添加一个12字节的伪报头。
选项字段的——长度是可变的。TCP最初只指定了一个选项,即最大分段长度MSS。MSS告诉TCP:"我的缓存可以接收的消息段数据字段的最大长度是MSS字节。"
MSS(MaximumSegmentSize)是TCP数据段中数据字段的最大长度。数据字段加上TCP报头等于整个TCP数据段。
5.6TCP可靠传输的实现
5.6.1滑动窗口(字节)
5.6.2超时重传时间的选择
5.6.3选择确认SACK。
5.7TCP流量控制
5.7.1使用滑动窗口实现流量控制。
流量控制是为了使发送者s发送速率不要太快,这样接收方才能及时收到,网络也不会拥塞。
TCP对每个连接都有一个持久计时器。
只要TCP连接的一端从另一端收到零窗口通知,它就会启动持续计时器。
如果持续定时器设置的时间到期,则发送零窗口检测消息段(仅携带1)。字节的数据),而对方在确认这个探测段的时候给出了当前的窗口值。
如果窗口仍然为零,接收该消息段的一方重置持续时间计时器。
如果窗口不为零,则可以打破死锁。
5.7.1必须考虑传输效率。
如果网络中多个资源同时拥塞,网络性能会明显恶化,整个网络的吞吐量会随着输入负载的增加而降低。
拥塞控制有一个前提,就是网络能够承受现有的网络负载。
流量控制通常是指控制给定发送方和接收方之间的点对点流量。
流量控制要做的就是抑制发送方发送数据的速率,让接收方能够及时接收。
5.8TCP拥塞控制
5.8.1拥塞控制的一般原则:开环控制和闭环控制。
5.8.2几种拥塞控制方法
1、慢启动和拥塞避免
发件人s控制拥塞窗口的原理是,只要网络不拥塞,拥塞窗口就会增大,以发送更多的数据包。但只要网络拥塞,拥塞窗口就会缩小,以减少注入网络的数据包数量。
2.快速重传和快速恢复
5.9TCP传输连接管理
传输连接有三个阶段:连接建立、数据传输和连接释放。
TCP连接的建立
TCP连接由客户端服务器建立。
使用三次握手建立TCP连接
TCP连接发布
您必须等待2MSL。
首先,为了确保A发送的最后一个ACK段能够到达B..
第二,预防"无效的连接请求消息段"不会出现在这里。a.发送完最后一个ACK段后,需要2MSL才能使这个连接持续期间生成的所有段从网络上消失。这样,旧的连接请求消息段将不会出现在下一个新的连接中。
arq方法最基本的两种方案?
反馈检测方法
反馈检测方法,也称为回声检查或"回声报方法,主要用于面向字符的异步传输,如终端与远程计算机之间的通信。这是一种不使用任何特殊代码的错误检测方法。双方传输数据时,接收方将接收到的数据(可以是字符,也可以是帧)发回发送方,发送方检查是否与原始数据完全一致。如果不是,发送方发送一个控制字符(如DEL)通知接收方删除错误数据,重新发送数据;如果是,则发送下一个数据。该反馈检测方法原理简单,易于实现,可靠性高。但是每个数据传输两次,信道利用率很低。一般在面向字符的异步传输中,信道效率不是主要因素,所以这种差错控制仍然被广泛使用。