概述:从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能的最底层。
面向信息处理:应用层
面向通信:运输,网络,数据链路,物理层
用户功能:应用,运输层
网络功能:网络,数据链路,物理层

进程间的通信
运输层为相互通信的应用进程提供了逻辑通信

运输层的两个主要协议
运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
运输层还要对收到的报文进行差错检测
运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP。

TCP与UDP
两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDU
TCP传送的数据单位协议是TCP报文段(可靠通信)
UDP传送的数据单位协议是UDP报文或用户数据报(不可靠)
运输层的UDP用户数据报与网际层的IP数据报有很大区别。IP数据报要经过互联网中许多路由器的存储转发,但UDP用户数据报是在运输层的端到端抽象的 逻辑信道中传送的,
TCP 报文段是在运输层抽象的端到端逻辑信道中传输,这种信道是可靠 的全双工信道,但这样 的信道却不知道究竟经过了哪些路由器,而这些路由器也不知道上面的运输层是否建立了TCP连接

UDP特点

  • 无连接
  • 无确认
  • 不可靠
  • 简单
  • 快通过

运输层的端口
端口就是运输层服务访问点TSAP
端口的作用就是让应用层的各种应用进程都能讲其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程,从这个意义,端口就是表示运输层进程
端口是用一个16bit端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程,在因特网中不同计算机的相同端口号是没有联系的。

端口分类

  • 熟知端口,其数值一般为0~1023,当一种新的应用程序出现时,必须为它指派一个熟知端口‘
  • 另一类则是一般端口,用来随时分配给请求通信的客户进程’

插口
TCP使用“连接”(而不仅仅是端口)作为最基本的抽象,同时将TCP连接的端口称为插口,或套接字,套接口。
【计算机网络】运输层TCP-LMLPHP

同一个名词socket有多种不同的意思
应用编程接口API称为socket API,简称为socket
socket API 中使用的一个函数名也叫做socket。
调用socket函数的端点称为socket
调用socket函数时其返回值称为socket描述符也可简称为socket
在OS内核中连网协议的Berkeley实现,称为socket实现

用户数据报协议
UDP概述:UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊点

  • 发送数据之前不需要建立连接
  • UDP使用尽最大努力支付,即不保证可靠传输,因此主机不需要维持复杂的连接状态表。
  • UDP是面向报文的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。
  • UDP没有拥塞控制
  • UDP支持一对一,一对多,多对一,多对多的交互通信
  • UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短

UDP的首部格式
用户数据UDP有两个字段:数据字段和首部字段,首部字段很简单只有8个字节由4个字段组成,每个字段的长度都是两个字节
【计算机网络】运输层TCP-LMLPHP

  • 源端口源端口号,在需要对方回信时选用,不需要时可全用0
  • 目的端口目的端口号,这在终点交付报文时必须要使用到。
  • 长度UDP用户数据报的长度,其最小值是8
  • 检验和检测UDP用户数据报在传输中是否有错,有错就丢弃

TCP

TCP特点 :

  • TCP是面向连接的运输层协议
  • 每一条TCP连接只能有两个端点,每一个TCP连接只能是点对点的
  • TCP提供可靠交付的服务
  • TCP提供全双工通信
  • 面向字节流

TCP的链接
TCP连接的端点叫做套接字或插口。根据RFC 793的定义:端口号拼接到IP地址即构成了套接字,因此,套接字的表示方法是在点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开。例如,若IP地址是192.3.4.5而端口号是80,那么得到的套接字就是(192.3.4.5:80)。
套接字socket=(IP地址:端口号)

可靠传输的工作原理
TCP发送的报文段是交给IP层传送的,但IP层只能提供尽最大努力服务,也就是说,TCP下面的网络所提供的是不可靠的传输。因此TCP必须采用适当的措施才能使得两个运输层之间的通信变得可靠

停止等待协议
“停止等待”就是每发一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。

  • 无差错情况
  • 出差错情况

确认丢失和确认迟到
B所发送的对M1的确认丢失了。A在设定的超时重传时间内没有收到确认,但并无法知道是自己发送的分组出错,丢失,或者是B发送的确认丢失了。因此A在超时计时器到期后就要重传。现再应注意B的动作,假定B又收到了重传的分组M1,这时应采取两个行动
第一,丢弃这个重复的分组M1,不向上层交付
第二,向A发送确认,不能认为已经发送过确认就不再发送,因为A之所以重传M1就表时A没有收到对M1的确认

信道利用率
停止等待协议的优点是简单,但缺点是信道利用率太低,假定在A与B之间有一条直通的信道来传送分组

【计算机网络】运输层TCP-LMLPHP
【计算机网络】运输层TCP-LMLPHP
为了提高传输效率,发送方可以不使用抵消率的停止等待协议,而是采用流水线传输

连续ARQ协议
发送发每收到一个确认,就把发送窗口向前 滑动一个分组的位置。接受方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认这就表示:到这个分组为止的所有分组已经正确收到

TCP报文段的首部部分
一个TCP报文段分为首部和数据两部分,而TCP的全部功能都体现在它首部各字段的作用。TCP报文段首部的前20个字节是固定的后面有4n字节是根据需要而增加的选项(n是整数)因此TCP首部的最小长度是20字节。

TCP的拥塞控制
在计算机网络中的链路容量(带宽),交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况叫做拥塞。可以把出现网络拥塞的条件写成如下的关系式:
【计算机网络】运输层TCP-LMLPHP

拥塞控制与流量控制
拥塞控制与流量控制 的关系密切,它们之间也存在一些差别。所谓拥塞控制就是防止过多的数据注入到网络,这样可以使网络中的路由器或链路不至过载。拥塞控制所要做的都有一个前提,就是网路能够承受现有的网络复荷,拥塞控制是一个全局性的过程,涉及所有的主机,所有的路由器,以及与降低网络传输性能所有因素。
流量控制往往指点对点通信量的控制,是个端到端的问题(接受端控制发送端)流量控制所要做的就是抑制发送端发送数据的速率,以便使接受端来得及接受

闭环控制措施

  • 监测网络系统以便检测到拥塞在何方,何处发生
  • 把拥塞发生的信息传送到可采取行动的地方
  • 调整网络系统的运行以解决出现的问题

拥塞控制方法
假定1.数据是单方向传送,而另一个方向只传送确认2.接收方总是有足够大 的缓存空间因而发送窗口的大小由网络的拥塞程度来决定

  • 慢开始与拥塞避免
    发送端的主机在确定发哦少年宫报文段的速率时,既要根据接受端的接受能力,又要从全局考虑不要使网络拥塞,因而每一个TCP连接需要有以下两个状态量:
    1.接受端窗口rwnd
    2.拥塞窗口cwnd
10-07 10:46