开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情
运输层
13.1运输层服务
(位于网络和应用层之间运输层负责向应用层提供服务,同时接受来自网络层的服务)
13.1.1 进程到进程的通信
运输层的首要任务是提供进程到进程的通信.进程是指运输层服务的一个应用层实体.
网络层负责计算机级的通信(主机到主机的通信)
运输层协议负责把报文交付给合适的进程。
13.1.2 编址:端口号
完成进程到进程的通信方法 客户-服务器范式
位于本地主机上的进程称为客户,它通常需要远程主机上的一个服务器的进程所提供的服务。
对于通信来说,必须定义: 本地主机,本地进程,远程主机,远程进程。
本地主机和远程主机都是通过IP地址来定义的。要定义进程,我们需要第二种标识,称为端口号,在TCP/IP 协议族中,端口号是 0~65535 之间的整数。客户程序通过一个端口号来定义自己,这种端口称为 临时端口号。 “临时”这个词的含义是指生存时间较短,客户生存时间都比较短。建议临时端口号取大于1023的整数。
TCP/IP 决定让服务器使用全球通用端口号,它们称为熟知端口号。
ICANN定义的范围段
把端口号划分三个范围段:熟知的,注册的和动态(或专用)的。
熟知端口 范围从0-1023的端口由ICANN指派和控制
注册端口 范围从1024-49151 的端口,ICANN既不指派也不控制。
动态端口 范围是49152~65535的端口既不用指派也不用注册。可被用作临时的或专用的端口号。 熟知端口小于1024
套接字地址
IP地址和端口号的组合称为套接字地址。客户套接字唯一定义了一个客户进程,正如服务器套接字地址唯一地定义一个服务器进程一样。
13.1.3 封装和解封
运输层协议要对报文进行封装和解封。
封装发生在发送方。运输层的分组也称为用户数据报,数据段或分组。
13.1.4 复用和分用
但一个实体接受来自多个源的输入时,就称为复用(多到一),而当一个实体将数据交付到多个源时,就称为分用(一到多)。
13.1.5 流量控制
当一个实体产生数据而另外一个实体消耗这些数据时,数据的产生速度和消耗速度之间应当达到某种平衡。
防止的时发生在消耗端的数据丢失:
推送或拉取( 从生产者到消耗者的数据交付可以通过两种方式)
运输层的流量控制
(发送方进程,发送方运输层,接收方运输层和接收方进程)四个实体打交道
缓存 (流量控制方法)
13.1.6 运输层的差错控制
运输层的差错控制负责(重点)
1检测并丢弃损坏的分组
2跟踪丢失和丢弃的分组并重传它们
3识别重复的分组并丢弃它们
4保存失序到达的分组,直至缺失的分组全部抵达。
(只涉及到发送方的运输层和接收方运输层)
序号 在运输层分组的首部增加一个字段,以保存分组的序号。
对于差错控制,序号是模2的m次方,其中m是序号字段的位数。
确认
我们可以用正信号或者负信号来实现差错控制。只要一个或一组分组安全且完好地到达了,那么接收方就可以为它们发送一个确认(ACK)