2.0运输层概述和服务以及多路复用和多路分解技术

因特网运输层

运输层位于应用层和网络层之间,是分层的网络体系结构的重要组成部分。因特网中运输侧层协议为TCP协议(传输控制协议)UDP协议(用户数据报协议)

TCP和UDP最基本的责任是,将两个端系统间IP的交付任务扩展为运行在端系统上的两个进程之间的交付服务。这种主机间交付扩展到进程间交付被称为运输层的多路复用多路分解。另外UDP和TCP还可以通过在其报文段首部中包括差错检查字段而提供完整性检查。

UDP仅能提供进程到进程的数据交付和差错检查两种服务(也是两种最低限度的运输层服务)

TCP除了数据交付和差错检查外,还额外提供了可靠数据传输、拥塞机制。

多路复用与多路分解

多路复用:在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息(这将在以后用于分解)从而生成报文段,然后将报文段传递到网络层。

多路分解:在接收端,运输层检查这些字段,标识出接收套接字,进而将报文段定向到该套接字。

从定义可以了解到运输层多路复用要求:(1)套接字有唯一标识(2)每个报文段有特殊字段来指示该报文段所要交付到的套接字

这些特殊字段是源端口号字段目的端口号字段,如下图运输层报文段中源与目的端口号字段所示:其中端口号是一个16比特的数,大小在0~65535之间。0~1023端口号为周知端口号,留给例如HTTP和FTP周知层协议使用。

无连接的多路复用与多路分解

UDP端口可以由运输层自动分配,也可以由程序设计者自行指定。当然,如果应用程序开发者所编写的代码实现的是一个“周知协议”的服务端,那么开发者就必须为其分配一个相应的周知端口。

UDP复用与分解过程:

扫描二维码关注公众号,回复: 5488842 查看本文章

注意:一个UDP套接字有一个二元组来全面标识,该二元组包含一个目的IP地址和一个目的端口号源端口号用来作为返回地址的端口号

面向连接的多路复用与多路分解

注意:TCP套接字有一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识的。特别与UDP不同的是,两个具有不同源IP地址或端口号的到达TCP报文段将被定向到两个不同的套接字,除非TCP报文段携带了初始创建连接的请求。

Web服务器与TCP

注意:连接套接字与进程之间并非总是一一对应的。当今的高性能Web服务器通常只有一个进程,但是为每个新的客户连接传建一个具有新连接套接字的新线程。 并且客户与服务器之间使用持续HTTP协议进行通信

猜你喜欢

转载自blog.csdn.net/weixin_39722922/article/details/88370798