计算机网络第五章运输层(5)

(主要参考谢希仁《计算机网络》第七版)

5.1 运输层概述

1 运输层向它的上层应用层提供通信服务。两台主机的通信就是两台主机中的应用进程互相通信。

2 运输层的复用和分用:复用是指发送方不同的应用进程都可以使用同一个运输层协议发送数据,分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确的交付给目的的应用进程。

3 硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。

TCP/IP的运输层用一个16位的端口号来标志一个端口,端口号只具有本地意义,它只是标志本计算机应用层中的各个进程和运输层交互时的层间接口,在互联网不同计算机中,相同的端口号是没有关联的。

4 服务器端使用的端口号

熟知端口号:或系统端口号,数值为0~1023

登记端口号:1024~49151

5 客户端使用的端口号

这类端口号仅在客户进程运行时才动态选择,又叫短暂端口号,49152~65535。

5.2 用户数据报协议 UDP

UDP首部有八个字节,四个字段组成,每个字段为两个字节。(源端口,目的端口,长度,检验和)。

1 无连接 发送数据之前不需要建立连接;

2 尽最大努力交互 不保证可靠交互;

3 面向报文的 应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界;

4 没有拥塞控制 ;

5 支持一对一、一对多、多对一、多对多的交互通信;

6 首部开销小。

5.3 传输控制协议 TCP

1 面向连接 应用程序在使用TCP协议之前,必须先建立连接,使用完成后,必须释放连接;

2 只能点对点

3 提供可靠交互 无差错、不丢失、不重复、并且按序到达;

4 全双工通信

5 面向字节流 虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅看成是一连串的无结构字节流。

套接字:

TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这样的端点叫做套接字或插口,套接字用(IP地址:端口号)表示。

5.4 可靠传输工作原理

5.4.1 停止等待协议

停止等待协议能够在不可靠传输的传输网络上实现可靠的通信,发送完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。分组需要进行编号。

超时重传(ARQ)是指只要超过了一段时间仍没有收到确认,就重传前面发送过的分组(认为刚才发送的分组丢失了),因此每次发送完一个分组需要设置一个超时计时器,其重传时间应该比数据在分组传输的平均往返时间更长一些。

在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还是要发送确认。

5.4.2 连续ARQ协议

连续ARQ协议可以提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组都可以连续发送出去,而不需要等待对方确认。接收方一般进行累积确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。

5.5 TCP首部

TCP报文首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项。在一个TCP连接中传输的字节流中的每一个字节都按顺序编号,首部中的序号字段值则是指本报文段所发送的数据的第一个字节的编号。

首部的确认号是期望对方下一个报文段的第一个数据字节的序号,若确认号为N,则表明到序号N-1为止的所有数据都已经正确收到。

TCP的首部中的窗口字段指出了现在允许对方发送的数据量,窗口值经常动态变化。

5.6 TCP可靠传输的实现

以字节为单位的滑动窗口,超时重传时间的选择,选择确认SACK。

TCP使用滑动窗口机制:

发送窗口里面的序号表示允许发送的序号,发送窗口的后面(前进方向的反方向)部分表示已发送且收到了确认,而发送窗口的前沿的前面(前进方向)部分表示不允许发送。发送窗口的两种状态,不动(没有收到确认)和移动(收到了新的确认)。

5.7/5.8 流量控制,拥塞

  • 流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
  • 在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就会变坏,即拥塞。拥塞控制是为了防止过多的数据注入网络中,防止路由器或链路过载。
  • 流量控制是一个端到端的问题,是接收端抑制发送端的发送速率。拥塞是一个全局的过程,涉及到所有的主机和路由器,以及与降低网络传输性能有关的所有因素。
  • 为了进行拥塞控制,TCP的发送方要维持一个发送拥塞窗口cwnd的状态变量,其大小取决于网络的拥塞程度,动态变化。发送窗口为拥塞窗口和接收方的接收窗口中的较小一个。
  • TCP的拥塞控制的四种算法:慢开始、拥塞避免、快重传、快恢复。

5.9 TCP的连接管理

1 三次握手

计算机网络第五章运输层(5)_第1张图片

(图源百度百科)

为什么需要第三次握手:为了防止已失效的连接请求报文段突然有传送到B,因而产生错误。

2 四次挥手

计算机网络第五章运输层(5)_第2张图片

(图源百度百科)

为什么要等待2MSL,使本连接持续的时间内产生的所有报文段都从网络中消失,保证下一次新的连接中不会出现旧的连接请求报文段。

计算机网络第五章运输层(5)_第3张图片

(图源百度百科)

你可能感兴趣的:(网络基础)