TCP/IP协议族【第13章 传输层简介】

序:

   第10章介绍移动IP技术,第11章介绍单播路由选择(RIP,OSPF,BGP),第12章介绍多播和多播路由选择协议,相对深入。以后再单独补上。

先从13章运输层开始整理。这一章总体介绍了运输层的总体功能及无连接服务,有连接服务的原理。细节在第14,15章的UDP,TCP展开。

13.1 运输层服务

13.1.1 进程到进程的通信

网络层负责计算机级的通信(主机到主机的通信),运输层协议负责把报文交付给合适的进程。

TCP/IP协议族【第13章 传输层简介】

13.1.2 编址:端口号

- 本地主机:IP地址定义 
- 本地进程:端口号:临时端口号 
- 远程主机:IP地址 
- 远程进程:端口号:熟知端口号,或通过特别的分组请求得到

虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完成。

三类端口

服务器端使用的端口号

熟知端口号,数值一般为 0~1023。
登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
客户使用的端口号。数值为 49152 ~ 65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用

套接字地址(socket address):IP地址和端口号的组合

13.1.3 封装和解封

封装发生在发送方,递交内容包括一对套接字和其他信息 
解封发生在接收方。

TCP/IP协议族【第13章 传输层简介】

13.1.4 复用和分用

源点的运输层接受来自多个源的输入,是复用;终点运输层将数据交付到多个源,为分用

TCP/IP协议族【第13章 传输层简介】

13.1.5 流量控制

需要两种情况的流控:从发送方的运输层到发送方的应用层以及从接收方的运输层到发送方的运输层

TCP/IP协议族【第13章 传输层简介】

常用的方式是缓存,分别位于发送方的运输层,接收方的运输层。

13.1.6 差错控制

IP层是不可靠的,所以依赖运输层差错控制。包括以下:

1.检测并丢弃坏的分组。

2.跟踪丢失,丢弃的分组并重传它们。

3.识别重复的分组并丢弃它们。

4。保存时序到达的分组,直至缺失的分组全部到达。

用序号+确认(ACK)来实现差错控制。

13.1.7 流量控制和差错控制的结合

序号是模2^m的,所以从0至2^m-1的序号表示,图片标识m=4,窗口假设为7

TCP/IP协议族【第13章 传输层简介】

13.1.8 拥塞控制

网络拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。拥塞控制是处理网络拥塞现象的一种机制。拥塞控制的任务是确保子网能够承载所到达的流量。这是一个全局性问题,涉及到各方面的行为,包括所有的主机、所有的路由器、路由器内部的存储转发处理过程,以及所有可能会削弱子网承载容量的其它因素。

开环拥塞控制:拥塞发生之前预防拥塞 

重传策略窗口策略确认策略闭环拥塞控制:在拥塞发生后缓解拥塞的程度 控制窗口大小

13.1.9 无连接的和面向连接的服务

网络层:无连接服务意味着属于同一报文的多个数据报采取了不同的路径 

运输层:无连接服务表示分组和分组之间是互相独立的,而面向连接的服务意味着它们相互之间有联系

无连接服务: 

TCP/IP协议族【第13章 传输层简介】

无连接服务下没有哪种流量控制、差错控制和拥塞控制策略能够有效实施

面向连接的服务

TCP/IP协议族【第13章 传输层简介】

有限状态机(FSM)表示 

TCP/IP协议族【第13章 传输层简介】

13.2 运输层协议

13.2.1 简单协议

简单协议是一个无连接协议,既没有流量控制,也没有差错控制 —-> UDP协议的基础 

TCP/IP协议族【第13章 传输层简介】

13.2.2 停止等待协议

停止等待协议是一种面向连接的协议,提供了流量控制和差错控制。

TCP/IP协议族【第13章 传输层简介】

流量控制通过迫使发送方等待确认实现。差错控制通过丢弃损坏的分组并且让发送方在计时器超时后重传未确认的分组来实现。

为了防止重复的分组,使用序号和确认号。

序号是基于模2运算。确认号总是声明了模2运算的下一个希望接受的分组号。

TCP/IP协议族【第13章 传输层简介】

13.2.3 返回N协议(GBN)

关键:受到确认之前能够发送多个分组,但接收方只能缓存一个分组 

TCP/IP协议族【第13章 传输层简介】

序号:模m运算 
确认号:是一个累计值,定义希望下一个接收分组的序号 
发送窗口:一个抽象概念,大小必须小于2m,
只使用一个计时器 (第一个等待确认的总会最先超时)

TCP/IP协议族【第13章 传输层简介】

接收窗口:抽象概念,大小是1,当一个正确的分组到达后,窗口就滑动一格。

重传分组:当计时器超时的时候,发送方重传所有待确认的分组。

13.2.4 选择重传协议

       返回N协议简化了接收方的处理过程.接收方只需跟踪一个变量,并且不需要对失序到达的分组缓存,而是简单地把失序到达的分组它们丢掉.但是如果低下的网络层协议丢失了很多分组,那么返回N协议的效率就会很低.每当一个分组损坏,发送方就需要重传所有待确认的分组,虽然其中有些分组实际上已经完好地 被接收了.

选择重传协议(Selective-Repeat, SR)选择重传协议只重传真正丢失的分组.

TCP/IP协议族【第13章 传输层简介】

窗口

选择重传协议的接收窗口和发送窗口一样大(2^m-1) 比返回N协议的窗口(2^m)小了一倍

TCP/IP协议族【第13章 传输层简介】

TCP/IP协议族【第13章 传输层简介】

      选择重传的接收窗口与发送窗口一样大.选择重传协议允许与接受窗口一样多的分组失序到达,并保存这些失序到达的分组,直到连续的一组分组被交付给应用层.因为发送窗口与接收窗口是相同的,所以发送出来的所有分组都可以失序到达,而且会被保留直到交付为止.但是必须强调一点,在一个可靠的协议中,接收方永远不会把分组失序地交给应用层.在他们被交付给应用层之前,先要等待那些更早发出来的分组到达.

计时器:1个

确认

在GBN中确认值(ACK) 是累计的,它定义了下一个希望接收的分组序号,同时也证实了此前所有的分组都已经被完好的接收了.在SR中,确认号(ACK)之定义完好接收的那一个分组的序号,并不反馈任何其他分组的信息.

TCP/IP协议族【第13章 传输层简介】

13.2.5 捎带(piggybacking)

除了正常的携带数据的同时,也能携带返回的确认.

*********************************************************

这一章理论多,还要结合后面的14,15章udp,tcp去理解。