传输层2 --- 传输层复用和分用

一.传输层基本服务

将主机间交付扩展到进程间交付,通过复用和分用实现。

发送端(复用)
传输层从多个套接字收集数据,交给网络层发送。

接收端(分用)
传输层将从网络层收到的数据,交付给正确的套接字。

二.如何进行复用和分用

1.为将报文段交付给套接字:
①主机中每个套接字应分配一个唯一的标识;
②报文段中包含接收套接字的标识。

2.复用:
发送方传输层将套接字标识置于报文段中,交给网络层。

3.分用:
接收方传输层根据报文段中的套接字标识,将报文段交付到正确的套接字。

三.套接字标识与端口号

1.端口号是套接字标识的一部分:
①每个套接字在本地关联一个端口号;
②端口号是一个16比特的数。

2.端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
在互联网中,不同计算机的相同端口号是没有联系的。

3.端口号的分类
①熟知端口:0~1023,由公共域协议使用;

②注册端口:1024~49151,需要向IANA注册才能使用;

③动态和/或私有端口:
a.49152~65535,一般程序使用;

b.当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
在这里插入图片描述
4.报文段中有两个字段携带端口号
①源端口号:与发送进程关联的本地端口号;

②目的端口号:与接收进程关联的本地端口号。
在这里插入图片描述
5.套接字端口号的分配
①自动分配

a.创建套接字时不指定端口号;
b.由操作系统从49152~65535中分配;
c.客户端通常使用这种方法。

②使用指定端口号创建套接字

a.创建套接字时指定端口号;
b.实现公共域协议的服务器应分配众所周知的端口号(0~1023)
c.服务器通常采用这种方法。

四.UDP分用的方法

1.UDP套接字使用 <IP地址, 端口号> 二元组进行标识。

2.接收方传输层收到一个UDP报文段后:
①检查报文段中的目的端口号,将UDP报文段交付到具有该端口号的套接字;

②<目的IP地址, 目的端口号> 相同的UDP报文段被交付给同一个套接字,与<源IP地址,源端口号>无关;

③报文段中的<源IP地址,源端口号>被接收进程用来发送响应报文。

五.TCP服务器使用的套接字

1.一个TCP服务器为了同时服务很多个客户,使用两种套接字。

2.监听套接字:

服务器平时在监听套接字上等待客户的连接请求,该套接字具有众所周知的端口号。

3.连接套接字:

①服务器在收到客户的连接请求后,创建一个连接套接字,使用临时分配的端口号;
②服务器同时创建一个新的进程,在该连接套接字上服务该客户;
③每个连接套接字只与一个客户通信,即只接收具有以下四元组的报文段:

  • 源IP地址=客户IP地址,源端口号=客户套接字端口号;
  • 目的IP地址=服务器IP地址,目的端口号=服务器监听套接字的端口号。

4.连接套接字需要使用<源IP地址,目的IP地址,源端口号,目的端口号>四元组进行标识,服务器使用该四元组将TCP报文段交付到正确的连接套接字。

六.小结

1.UDP套接字

a.使用<IP地址,端口号>二元组标识UDP套接字;
b.服务器使用一个套接字服务所有客户。

2.TCP套接字

a.使用<源IP地址,目的IP地址,源端口号,目的端口号>四元组标识连接套接字;
b.服务器使用一个监听套接字和多个连接套接字服务多个客户,每个连接套接字服务一个客户。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llurran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值