一、传输层概述
1、划分传输层的必要性:主机在运行网络应用程序时,会为每个应用程序分配一个唯一的应用进程标识,而应用进程的识别就需要依靠传输层了,它就是通过“端口”将不同应用进程进行对应的。
2、点对点连接,就是通信双方直接通过电缆进行的连接,也就是通常所说的背对背连接,中间没有经过任何其他设备。
3、端对端连接,就是两个端系统之间的连接,体现在两个终端系统的连接时要经过一个或多个设备。
4、端到端服务包含两层含义:一是从物理角度来讲,通信双方不是在同一链路上;二是从虚拟的传输角度来讲,两端的连接是直接进行的,屏蔽了核心网络结构和各种子网间的差异。
5、端到端传输的优点:数据经过中间设备无需存储转发,直接传输,所以可靠性高,传输延迟小。缺点:源端只能等数据传输完成后,才能拆除虚拟传输连接,这样,如果传输的延迟很长,就会对源端设备造成很大的资源浪费;如果设备关机或者故障,端到端传输就不可能实现,因为无法建立虚拟的专用传输通道。
6、点到点传输是通过与它直连的设备将数据一次次的转发下去,是一种接力传输方式。优点:源端将数据发出去了就不管了,不会浪费源端的资源,另外接收端关机或者故障,还可以通过存储转发技术进行缓冲。缺点:不能确定目的端能否或何时收到数据。
7、传输层服务类型:面向连接的传输服务和无连接的传输服务。
8、传输层协议类别:TP0,简单类,数据段和重组;TP1,基本差错恢复类,数据段和重组、差错控制;TP2,多路复用类,数据段和重组、多路利用和解复用;TP3,差错恢复和多路复用类,数据段和重组、差错控制、多路利用和解复用;TP4,差错检测和恢复类,数据段和重组、差错控制、多路利用和解复用、差错控制。
9、TSAP(传输服务访问点),相当于传输层的地址,不同的TSAP标识不同的会话或应用进程。传输地址分成网络ID、主机ID及主机分配的端口三部分。
10、TPDU(传输协议数据单元),在OSI/RM中定义的常见的有10种,分别是CR(Connection Request,连接请求)、CC(Connection Confirm,连接确认)、DR(Disconnect Request,断开连接请求)、DC(Disconnect Confirm,断开连接确认)、DT(Data,数据)、AK(Acknowledgement,数据确认)、ED(Expedited Data,加速数据)、EA(Expedited data Acknowledgement,加速数据确认)、RJ(Reject,拒绝)、ER(Error,错误)。
二、传输层服务功能
1、传输层完成端到端的透明传输分为两个步骤:一是虚拟链路的建立;二是源端用户数据沿着传输连接传送到目的端。
2、传输层寻址方案:进程服务器的TSAP地址分配方案、名称服务器的TSAP地址分配方案。
(1)、进程服务器的TSAP地址分配方案:使用一个特殊的进程服务器来集中为那些较少使用的服务提供端口监听代理功能。详细步骤见P518。
(2)、名称服务器的TSAP地址分配方案:名称服务器总是在监听一个特定的知名服务的端口,用户通过向其发送一个需要的服务名称,来获取一个相应的TSAP地址。
3、重复传输连接的解决方案
(1)、非重复TSAP:系统为每次连接赋予一个新的TSAP地址,当连接被释放时将此TSAP废弃。但不适用于WWW、FTP、POP之类的传输端口是固定的知名服务。
(2)、过时连接表:为每个连接分配连接标识符,每新建一个传输连接,序列号增加1,并且存入每个TPDU中。当有新连接到达时,核对过时连接表,如果序列号已经存在,则视为重复连接。
(3)、分组的TTL机制:先定义和计数每个分组的生存时间TTL,如果因超时未达目的地,则视为陈旧分组,将被抛弃。
(4)、三次握手机制:建立连接时,发送端发送CR TPDU请求(第一次握手),接收端收到请求后,发送一个CC TPDU(其中包含自己的序列号)应答(第二次握手),发送端收到应答后,发送一个DT TPDU,对接收端的初始序列号确认(第三次握手)。
4、传输连接释放,传输连接释放分为“对称释放”和“非对称释放”两种。“对称释放”是在各自独立发出释放连接请求,收到对方的释放确认之后才可释放连接;“非对称释放”是在发送释放请求后单方终止连接,但这样做可能丢失对方发送的数据。
5、流量控制:在连接建立时,双方通过CR TPDU和CC TPDU中的CDT字段来确定双方的初始窗口大小,即初始信用量。在数据传输过程中,发送端根据收到的AK TPDU中的CDT值来发送一定的数据量。
(1)、窗口大小为1的数据传输过程:发送端发送一个,接收端确认一个,才能再发送下一个,与数据链路层的“停—等”窗口协议原理是一样的。
(2)、窗口大小为3的数据传输过程:发送端可以在第一次连续发送3个DT TPDU,再等待接收端返回确认消息,发送端再根据确认信息发送TPDU。
6、多路复用
(1)、向上多路复用:假设一台机器只有一个网络地址可以使用,那么这台机器上的所有传输连接都必须使用这一个网络地址。
(2)、向下多路复用:在一个子网中使用了虚电路,当某个传输连接所需的带宽超过某一条虚电路所能提供的带宽时,就需要将这个传输连接以轮询的方式把数据流分配在不同的网络连接上。
三、TCP概述,TCP(传输控制协议)是TCP/IP体系结构中的主要传输层协议
1、TCP的主要特性:
(1)面向连接的传输协议
(2)仅支持单播传输
(3)提供可靠的交付服务
(4)传输单位为数据段
(5)仅一种TPDU格式
(6)支持全双工传输
(7)TCP连接是基于字节流的,而非报文流
(8)每次发送的TCP数据段大小和数据段数都是可变的
2、TCP数据段的格式,TCP数据段格式只有一种,具体格式见P531.
3、TCP套接字(Socket),Socket并不直接等同于TSAP,它们只是类似,实际上Socket只是利用了TSAP地址,因为在它所包括的一组参数中就有TSAP地址——端口。Socket中包括3个区分网络通信中不同应用程序的参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。TSAP是位于传输层上边缘(但仍属于传输层),而Socket是完全位于应用层,但它调用了传输层的端口,Socket包括了TSAP地址。
4、TCP端口,“端口”和“接口”是两个不同的概念,接口是物理的,而“端口”却是一种抽象的软件结构,包括一些数据结构和I/O(输入/输出)缓冲区,故属于软件接口范畴,是传输层TSAP地址。每种应用层服务或应用进程都具有与传输层唯一连接的端口,并且使用唯一的端口号进行区分。TCP共有65535个端口,共分为以下三类:
(1)、保留端口,从0—1023号,称为“常规端口”或者“公认端口”,固定分配给已知的网络应用协议,如HTTP的80端口、Telnet的23端口、SMTP的25端口等。
(2)、动态分配端口,可以动态地分配给任意网络服务应用程序使用。也就是我们写网络应用程序申请的端口号。
(3)、注册端口:注册端口比较特殊,它也是某个应用服务的端口,但是它所代表的不是已经形成标准的应用层协议,而是某个软件厂商开发的应用程序,如CCProxy中的8080端口。
5、TCP连接的状态转移,详情见P539.
6、TCP传输连接的建立,详情见P542.
7、TCP连接传输的释放,详情见P544.
四、TCP的可靠传输
1、字节编号机制,TCP数据段以字节为单位对数据段中的“数据”部分进行一一编号,确保每个字节的数据都可以有序传送和接收。
2、TCP数据段确认机制,有以下三个特性:TCP可一次连续发送多个数据段;仅对连续接收的数据段进行确认;不连续序号的数据将先缓存。
3、TCP超时重传机制,其原理是在发送一个数据段后开启一个超时重传计时器,如果在定时器时间内没有收到对方的该数据段的确认,则启动重传机制,重新发送对应的数据段,直到发送成功未知。其中的重传时间和时间间隔的算法见P549.
4、TCP的选择确认机制,接收端可能收到一系列数据段,其中缺少某一个数据段,发送端就要从缺失的那个数据段开始重新发送(包括接收端后面收到的数据端也要重新传输),为了避免这种问题,“选择确认机制”应运而生!其原理是接收端在向发送端确认已接收的一系列数据段时,把后面不连续的数据段序号也带上,让发送端知道不用重传这几个数据段。
五、TCP流量控制
1、“流量控制”是通信双方数据发送和接收速率匹配方面的问题,是一个点对点行为;“拥塞控制”是基于网络中各段链路的带宽和中间设备数据处理能力方面而考虑的,是一个端到端的行为。
2