计算机通信网络之传输层_第1页
计算机通信网络之传输层_第2页
计算机通信网络之传输层_第3页
计算机通信网络之传输层_第4页
计算机通信网络之传输层_第5页
已阅读5页,还剩126页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2013-12-051传输层本章重点:

理解传输层的主要作用及传输服务;

TCP协议;2013-12-0521

传输层的概念传输层的任务是提供从源端到目的端可靠而有效的数据传输,能屏蔽低层网络的差异。传输层协议没有OSI网络层协议复杂,因为它们只包括两个端节点上的协调,而无需象网络层那样整个路由上的所有节点的协调。网络层可能提供并非十分可靠的网络传输,传输层就是要在这种不十分可靠的网络服务上,提供可靠的传输服务。2013-12-053传输层的概念传输层向它的上面的应用层

提供服务,它属于面向通信

部分的最高层,同时也是用

户功能中的最低层。在通信

子网中没有传输层。传输层

只存在于通信子网以外的主

机中。传输层是整个协议层次结构

的核心,它为高层屏蔽任何

与网络有关的操作,传输层是端到端协议,与使用的网络无关。传输层

应用层

传输层

网络层数据链路层

物理层用户功能

网络

功能面向信息处理

面向

通信2013-12-05传输层

4

4介于通信子网和资源子网之间,对高层用户屏蔽了通信的细节弥补了通信子网所提供服务的差异和不足,提供端到端之间的无差错保证传输层工作的简繁取决于通信子网提供服务的类型资源子网通信子网传输的使用者传输的提供者传输层在OSI模型中的位置

应用层表示层会话层传输层网络层链路层物理层......2013-12-055传输层

端到端的通信:严格地讲,两个主机进行通信实际上就是两个主

机中的应用进程互相通信。IP协议虽然能把分组送到目的主机,

但是这个分组还停留在主机的网络层而没有交付给主机中的应用

进程。由于通信的两个端点是源主机和目的主机中的应用进程,

因此应用进程之间的通信又称为端到端的通信。应用进程应用进程

Internet

IP作用范围TCP和UDP作用范围2013-12-05传输层

6

6传输层与上下层之间的关系传输层使高层用户看见的好象就在两个传输层实体之间有一条端到端的、可靠的、全双工的通信通道(即数字管道)应用/传输接口

传输实体网络地址

网络层

主机1应用(或会话层)

传输地址

主机2应用(或会话层)

TPDU

传输协议

传输/网络接口网络层、传输层和应用层传输实体

网络层端口

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

逻辑通信54321主机

A主机

B应用进程

应用进程路由器

1路由器

2LAN2WAN

AP1AP2AP3AP4IP

层LAN1AP1

AP2端口AP4

54321

IP

协议的作用范围运输层协议

TCP

和

UDP

的作用范围AP3应用进程之间的通信两个主机进行通信实际上就是两个主机中的应用进程互相通信。应用进程之间的通信又称为端到端的通信。运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。2013-12-059传输层

传输层协议和数据链路层协议非常相似,都必须进行顺

序控制、差错控制、流量控制等工作。

但由于运行的环境不同,两者的具体操作是大不相同。

传输层的端到端之间经过一个复杂的、具有存储能力的

通信子网,使得其在寻址、连接的管理、控制协议等方

面都非常复杂。传输层

102013-12-05传输协议的要素传输层与数据链路层的比较相同点:

可靠的数据传输不同点:

数据链路层通过物理通道直接通信,而在传输层,其

面对的传输通道是一个网络

数据链路层的连接建立很简单,而传输层要复杂得多

数据链路层的通信是点对点的,每条输出线对应了唯

一的一个设备,而传输层则需要给出目的端地址

在数据链路层无中间存储环节,而在传输层,每一途

经的路由器都必须存储、寻径、转发,而寻径到转发

的时间随路由器本身的性能和路由算法而定

数据链路层通常使用一对发送缓冲区和接收缓冲区,

而在传输层,对每个连接都必须分配一定的缓冲区,

其缓冲区的管理将复杂得多TCP/IP

的运输层有两个不同的协议:(1)

用户数据报协议

UDP(User

Datagram

Protocol)(2)

传输控制协议

TCP(Transmission

Control

Protocol)运输层的两个主要协议两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元

TPDU

(Transport

ProtocolData

Unit)。TCP

传送的数据单位协议是

TCP

报文段(segment)

UDP

传送的数据单位协议是

UDP

报文或用户数据报。TCP

与

UDP应用层UDPTCPIP与各种网络接口TCP/IP

体系中的运输层协议运输层TCP

与

UDPUDP

在传送数据之前不需要先建立连接。对方的运输层在收到

UDP

报文后,不需要给出任何确认。虽然

UDP

不提供可靠交付,但在某些情况下

UDP

是一种最有效的工作方式。TCP

则提供面向连接的服务。TCP

不提供广播或多播服务。由于

TCP

要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。还要强调两点运输层的

UDP用户数据报与网际层的IP数据报有很大区别。IP数据报要经过互连网中许多路由器的存储转发,但UDP用户数据报是在运输层的端到端抽象的逻辑信道中传送的。TCP

报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了

TCP

连接。2013-12-05161.1

传输层的功能会话层实体向传输层实体提出进程间通信所需要的传输条件方面的请求,这种请求用传输连接建立服务原语中的服务质量(QoS)参数来传递。传输层就需要事先知道网络连接的服务质量,并根据不同的网络服务质量来定义相匹配的传输服务和协议等级,以便最佳地利用网络通信资源来向上提供统一质量的传输服务。若通信子网所提供的服务越多,传输协议就可以设计得越简单;反之,若通信子网所提供的服务越少,传输协议就必然越复杂。传输层

172013-12-05传输层提供的服务面向连接的服务:通信可靠,对数据有校验和重发如TCP/IP模型中应用层协议FTP、Telnet等面向非连接的服务:对数据无校验和重发,通信速率高如TCP/IP模型中应用层协议SNMP、DNS等18

传输层

网络服务类型,ISO定义的3种网络服务如下:

A型网络服务:A型网络提供的服务本质上很完善,其分组丢

失率、重复或篡改的概率可以忽略。A型网络仅需要尽可能

简单的传输层协议,如局域网的服务接近A型网络。

B型网络服务:B型网络提供的服务具有可接受的残留差错率

和不可接受的被告知的故障率。如X.25。

C型网络服务:C型网络提供的服务相当不可靠,具有不可接

受的残留差错率和不可接受的被告知的故障率。如无连接的

分组交换网。

可见,网络服务质量的划分是以用户要求为依据的.若用户要求比

较高,则一个网络可能归于C型;反之,则一个网络可能归于B

型甚至A型。例如,对于某个电子邮件系统来说,每周丢失一

个分组的网络也许可算做A型;而同一个网络对银行系统来说

则只能算作C行了。三种类型的网络服务中,A型服务质量最高,B型网2013-12-05络服务质量次之,C型网络服务质量最差。2013-12-0519传输层

传输层协议类型

传输协议类0(TP0):支持A型网络,实现分段和重

组(segmentation

and

reassembly)功能。TP0先识

别底层网络支持的最大协议数据单元(PDU)的最小值

的大小,根据此对数据包进行分段,然后数据包段在

接收端再进行重组。

传输协议类1(TP1):支持B型网络,执行分段和重

组和差错恢复功能。TP1对协议数据单元(PDU)进行

排序。如果有太多的

PDU

没有获得确认响应,将重发

PDU或重新启动连接。

传输协议类2(TP2):支持A型网络,实现分段和重

组,以及单一虚拟电路上的数据流多路复用技术和解

除复用技术(demultiplexing)等功能。2013-12-0520传输层

传输协议类

3(TP3):支持B型网络,提供差错恢复、

分段和重组、以及单一虚拟电路上的数据流复用技术和

解除复用技术等功能。TP3

也支持协议数据单元排序操

作。如果有太多的

PDU

没有获得确认响应,将重发

PDU

或重新启动连接。

传输协议类

4(TP4):支持C类网络,提供差错恢复功

能,实现分段和重组处理,并支持单一虚拟电路上的数

据流复用技术和解除复用技术。TP4

也支持协议数据单

元排序操作。如果有太多

PDU

没有获得确认响应,将重

发

PDU

或重新启动连接。TP4

能提供可靠传输服务和功

能,既支持面向连接网络服务,也支持无连接网络服务。

TP4

是

OSI

传输协议中使用最为普遍的,它类似于

TCP/IP

协议集中的传输控制协议

(TCP)。2013-12-0521传输层

从传输层协议类

0

到传输层协议类

4

(TP0、

TP1、TP2、

TP3

和

TP4),协议复杂性依次

递增。TP0-3

只适用于面向连接通信,在该通信

方式下,任何数据发送之前,必须先建立会话连

接;而

TP4

既可以用于面向连接通信也可以用

于无连接通信。2013-12-0522传输协议类别(1)0类协议(TP0):简单类(2)1类协议(TP1):基本差错修复类(3)2类协议(TP2):复用类(4)3类协议(TP3):差错修复和复用类(5)4类协议(TP4):差错检测和修复、复用传输协议类别网络服务类型基本功能TP0A建立连接TP1B基本差错修复TP2A复用TP3B差错修复与复用TP4C差错检测与修复,复用2013-12-0523OSI传输协议类别与网络服务之间的匹配关系2013-12-05242

传输层处理的独特问题8.2.1

端到端差错控制标准传输层协议的重点是要防止低层网络在复位、清除、重启动之后使数据丢失。传输层要负责处理低层无法消除了差错。例如:在网络层,IP数据报头部的校验和字段,只对头部信息进行差错检验,而不检查数据部分8.2.2

端到端传输连接管理传输层连接管理的基本方法是基于“握手”规程和基于定时器的两种方法的组合。由于网络时延的不可预测性,使得传输层的连接管理变得更加复杂两种机制的组合能保证某种类型的分组或标识符在它们存在于系统的最大时间内都是唯一的。传输层

252013-12-05连接建立通信子网的不可靠性通信子网中存在着延时和分组的丢失,以及由于延时和丢失而带来的重复分组由于通信子网的尽力而为的传输原则,一个早已超时的分组最终还是到达了目的端,所以有必要将分组的生命周期限制在一个适当的范围内连接建立时,如何处理过期分组,保证连接的唯一性是连接建立过程中首要考虑的问题常用的方法是:

三次握手法26节点A节点B0,

OPEN超时0,ACK0,

OPEN1,ACK0,

Data

1

1,ACK12,ACK1,

Data

2

2,ACK1,

Data

2

2,ACK23,ACK2,

CLOSE3,ACK3,

CLOSE

0,

OPEN

0,ACK0,

OPEN

0,ACK0,

Data

1

1,ACK12,ACK22,ACK1,

Data

2连接建立数据正确接收数据延迟,超时重发重发数据正确接收连接关闭连接再次建立数据正确接收延迟的数据被正确接收作为重复数据丢弃

两次握手方式建立连接的问题示例2013-12-05两次握手:第一次连接使用阶段中发送的分组由于不可预测的时延出现在了第二次连接中,被当作一个新的分组而接收下来,而真正的新分组却被当作重复分组丢弃掉。节点A节点B

超

时2013-12-05

0,

OPEN,

ID#10,ACK0,

ID#1,

OPEN,

ID#21,ACK0,

ID#2,

Data

1,

ID#1

1,ACK1,

ID#1连接建立启动连接建立完成,数据正确接收数据延迟,超时重发重发数据正确接收连接关闭连接再次建立启动连接建立完成,数据正确接收延迟的数据被丢弃数据正确接收

27

2,ACK1,

ID#2,

Data

2,

ID#1

2,ACK1,

ID#2,

Data

2,

ID#1

2,ACK2,

ID#1

3,ACK2,

ID#2,

CLOSE,

ID#1

3,ACK3,

ID#1,

CLOSE,

ID#2

0,

OPEN,

ID#3

0,ACK0,

ID#3,

OPEN,

ID#41,ACK0,

ID#4,

Data

1,

ID#3

1,ACK1,

ID#32,ACK1,

ID#4,

Data

2,

ID#3

2,ACK2,

ID#3

三次握手方式建立连接示例传输层

28连接建立过程正常的三次握手过程非正常的连接建立过程

2013-12-05由延迟而重复的TPDU的连接过程同时出现作废的CR和ACC的情况传输层

292013-12-05正常的连接建立过程正常连接的三次握手过程t主机1主机2(a)正常操作

主机1发出的连接请求序号为

x(seq=x),主机2应答接受主机1的

连接请求,并声明自己的序列号为

y(seq=y,ACK=x),主机1收到确认

后发送第一个数据TPDU并确认主

机2的序列号(seq=x,ACK=y),至

此,整个连接建立过程正常结束,

数据传输已正式开始CR:Connection

Request(连接请求)

ACC:Connection

Accepted(接受连接)采用三次握手方法建立的正常情况2013-12-05传输层

30非正常的连接建立过程1出现延迟的重复TPDU时三次握手的工作过程来自一个已经释放连接的主机1的延时重复的连接请求,该TPDU在主机1毫不知晓的情况下到达主机2,主机2通过向主机1发送一个接受连接请求的TPDU来响应该TPDU,并声明自己的序号为y(seq=y,ACK=x),主机1收到这个确认后感到莫名其妙并当即拒绝,主机2收到了主机1

的拒绝才意识到自己受到了延时的重复TPDU的欺骗并放弃该连接,据此,延时的重复请求将不会产生不良后果t主机1主机2

(b)重复的CR突然出现采用三次握手建立的第二种情况旧的重复2013-12-05传输层

31非正常的连接建立过程2子网中同时有作废的CR和ACC的情况与上例一样,主机2收到了一个延时的CR并做了确认应答,在这里,关键是要认识到主机2已经声明使用y作为从主机2到主机1进行数据传输的初始序号,因此主机2十分清楚在正常情况下,主机1的数据传输应捎带对y确认的TPDU,于是,当第二个延时的TPDU到达主机2时,主机2根据它确认的是序号z而不是y知道这也是一个过时的重复TPDU,因此也不会无故建立无人要求的连接采用三次握手建立的第三种情况t主机1主机2(c)重复的CR和重复的ACK旧的重复传输层

32释放连接

2013-12-05非对称释放一方中止连接,则连接即告中断缺陷:可能导致数据丢失对称释放传输层

332013-12-05对称释放A提出中止请求,B同意即中止对称释放方式适用于每个用户进程有固定数量的数据需要发送,而且清楚地知道何时发送完毕的情况其他情况下,决定所有工作是否已经完成,连接是否应该释放,可能是没有把握的可以假想一种完美的协议:

A说:“

我发送完了,你呢?”

如果B响应:“

我也发送完了,再见,”

A收到了B的确认,连接便可以被安全释放传输层

342013-12-05对称释放的几种情况三次握手的正常情况最后的确认TPDU丢失应答丢失应答丢失以及后续的DR丢失发送DR并传输层

35对称释放1

三次握手的连接正常释放情况2013-12-05释放连接发送ACK

发送DR并启动计时器释放连接

三次握手的正常情况

主机1

主机2

DR

启动计时器DRACK主机1在结束数据传输后决定释放连接,于是发送DR并启动计时器,主机2在收到主机1

的DR后同意释放连接,也发送DR并启动计时器,主机1

在计时器没有超时前收到主机2

的DR,便正式释放连接并发送ACK,主机2也在计时器没有超时前收到主机1

的ACK,于是也释放了连接,至此整个数据传输过程,包括建立连接、传输数据和释放连接的过程正常结束传输层

36最后的确2013-12-05

认TPDU丢失的情况主机2

主机1

发送DR并启动计时器

释放连接发送ACK

发送DR并启动计时器DRDRACK丢失

┇

┇

┇

┇(超时)释放连接对称释放2最后的确认TPDU丢失主机1在结束数据传输后决定释放连接,于是发送DR并启动计时器,主机2在收到主机1

的DR后同意释放连接,也发送DR并启动计时器,主机1

在计时器没有超时前收到主机2

的DR,便正式释放连接并发送ACK,然而主机2在计时器超时后还未收到主机1

的ACK,但是由于已经超时,于是也释放了连接传输层

372013-12-05对称释放3应答丢失主机1在结束数据传输后决定释放连接,于是发送DR并启动计时器,主机2在收到主机1

的DR后同意释放连接,也发送DR并启动计时器,然而,主机1

在计时器超时后还未收到主机2

的DR,于是又重新发送DR并启动计时器,下面便是一个正常的三次握手,并最后正常释放连接,即整个数据传输过程正常结束应答丢失的情况

DR丢失

DR

DR

ACK

主机2

发送DR并启动计时器

发送DR并启动计时器

释放连接

主机1

发送DR并启动计时器

(超时)

发送DR并启动计时器

释放连接

发送ACK传输层

382013-12-05对称释放4应答丢失以及后续的DR丢失主机1在结束数据传输后决定释放连接,于是发送DR并启动计时器,主机2在收到主机1

的DR后同意释放连接,也发送DR并启动计时器,然而,紧接着的一段时间内,线路遇到了灾难性的干扰,无论是哪一方的超时重发的TPDU都不能到达对方,最终,接收方计时器的超时而也释放连接,发送方经过n次重发和超时后只能无奈地

放弃努力并释放连接应答丢失以及后续的DR丢失主机1主机2

发送DR并启动计时器

┇

┇

┇

┇

(超时)

释放连接

DR丢失

丢失

发送DR并

启动计时器

┇

┇

┇

(超时)

发送DR并

启动计时器

┇

┇

┇(N个超时)

释放连接2013-12-05392.3

传输层超时和拥塞控制传输层1网络端到端传输会产生长时延且时延的变化很大,所以在确定合适的超时和拥塞控制时会产生特殊的问题。如需要对来回传输时延进行估算。估算时延的一种方法是:将当前的来回时延和以前估算的时延进行加权平均。

Wn

Wn1

(1)

n分组的重发超时通常取Wn,这里

(通常建议为2)402013-12-05与下层的网络服务提供者进行交互。务原语3

传输服务

图8-4

传输服务逻辑结构图

传输服务提供者也称为传输实体,是提供有效、可靠的传输服务的硬件和软件。

在同一系统中,传输实体经过传输服务访问点(TSAP)交换传输服务原语与上层的传

输服务用户进行交互。与此同时,传输实体经过网络服务访问点(NSAP)交换网络服会话层实

体传输层实会话层实

体传输层实

体

网络层数据链路层

物理层

体

网络层数据链路层

物理层TSAPTSAPNSAPNSAP

传输连接

网络层数据链路层

物理层

会话层传输服务

传输层传输媒介传输媒介2013-12-0541

3.1

传输服务分类与功能传输服务的分类

面向连接的服务:连接建立,数据传输,连接释放

与连接管理有关的服务,主要负责建立传输连接以及在通信完毕

时释放连接。

与数据传输有关的服务:

面向无连接的服务2013-12-0542

传输服务的功能

1.

在传输服务用户之间为传输TPDU而建立一条或多条传

输连接。

2.

传输连接建立时,使用QoS参数对服务质量进行协商;

3.

透明地传送TPDU;

4.

数据传输速率受到接收方传输服务用户的控制,即流量

控制功能;

5.

经传输服务用户事先一致同意的情况下,可不受流控而

独立传送加速TPDU;

6.

提供无条件释放传输连接的手段。2013-12-05433.2

传输服务质量(QoS)

传输服务质量(QoS):

QoS参数是由传输连接用户根据

需要提出,在连接建立过程中协商决定的,一般给出希望

的值和最小可接受的值,并作为传输连接提供者选择协议

的基础。

ITU-T在X.214建议书中定义十一个QoS参数:

传输连接建立时延

传输连接建立失败概率

吞吐量

传输时延

残差率

传输失败概率

传输连接释放时延

传输连接释放失败概率

传输连接的保护

传输连接优先级

传输连接修复能力2013-12-05443.3

传输服务原语

服务原语:服务在形式上是一组原语(Primitive)

来描述的。原语被用来统治服务提供者采取某些行

动,或报告某同层实体已经采取的行动。在OSI参

考模型中,服务原语划分为四种类型。

请求(Request)。用户利用它要求服务提供者提供某些服

务,如建立连接或发送数据等;

指示(Indication)。服务提供者执行一个请求以后,用指

示原语通知收方的用户实体,告知有人想要与之建立连

接或发送数据等;

响应(Response)。收到指示原语后,利用响应原语向对

方作出反应,;例如同意或不同意建立连接等;

确认(Confirm)。请求对方可以通过接收确认原语来获

悉对方是否同意接受请求。2013-12-0545原语可以携带参数,如连接请求原语的参数,包

括被叫地址、主叫地址以及需要什么服务类别等。

连接指示原语的参数包含呼叫者的表示、需要服

务的类别等。阶段服务原语参数连接建立建立传输连接T_CONNECT.requestT_CONNECT.indication被叫地址、主叫地址、加速数据选择、服务质量、传输服务用户数据T_CONNECT.responseT_CONNECT.confirm服务质量、响应地址、加速数据选择、传输服务用户数据数据传送正常数据传送T_DATA.requestT_DATA.indication传送服务用户数据加速数据传送T_EXPEDITED_DATA.requestT_EXPEDITED_DATA.indication传送服务用户数据连接释放释放传输连接T_DISCONNECT.request传送服务用户数据T_DISCONNECT.indication拆连原因、传送服务用户数据有序释放连接T_CLOSE.request/T_CLOSE.indication/原语参数T_UNIT_DATA.request主叫地址、被叫地址、服务质量、传送服务用户数据T_UNIT_DATA.indication主叫地址、被叫地址、服务质量、传送服务用户数据2013-12-0546传输服务原语及参数2013-12-0547系统A系统B会话层会话层传输层

T_CONNECT.request

T_CONNECT.indication

T_CONNECT.responseT_CONNECT.confirm

传输层中建立连接的时序图2013-12-0548系统A系统B会话层会话层传输层

T_CONNECT.requestT_DISCONNECT.indicationT_CONNECT.indicationT_DISCONNECT.request系统A会话层传输层

T_CONNECT.requestT_DISCONNECT.indication(a)(b)

传输服务中连接建立拒绝的两种情况两种情况:(a)是目的主机传输服务用户拒绝接受该连接;(b)是传输层服务提供者拒绝建立连接;2013-12-0549数据传送阶段的服务原语系统A系统B会话层会话层传输层

T_DATA.request

T_DATA.indicationT_EXPEDITED_DATA.requestT_EXPEDITED_DATA.

indication

图8-7

数据传送阶段的服务原语数据传送时,不需要从接收数据的传输用户得到响应和证实服务原语,传输协议负责数据的正确交付2013-12-0550服务用户发起系统A系统B传输层

会话层T_DISCONNECT.request

会话层T_DISCONNECT.indication服务提供者发起传输服务中连接的有序释放T_DISCONNECT.indication

OSI中传输连接释放的两种情况

系统A

T_DISCONNECT.indication系统B传输层

会话层

T_CLOSE.requestT_CLOSE.indication

会话层T_CLOSE.indicationT_CLOSE.request不再发数据不再发数据51网络层传输服务用户传输层传输服务用户传输层N_CONNECT.indicationN_CONNECT.response

N_CONNECT.requestN_CONNECT.confirm

N_DATA.requestN_DATA.indicationN_DATA.indicationT_CONNECT.indication

T_CONNECT.responseN_DATA.requestT_CONNECT.requestT_CONNECT.confirm(CR

TPDU)(CC

TPDU)(CR

TPDU)(CC

TPDU)N_UNIT_DATA.indicationN_UNIT_DATA.indicationT_CONNECT.indication

T_CONNECT.responseN_UNIT_DATA.requestT_CONNECT.confirm

2013-12-05(CR

TPDU)(CR

TPDU)(CC

TPDU)

(a)

面向连接的网络服务T_CONNECT.request

N_UNIT_DATA.request

(CC

TPDU)

(b)

无连接的网络服务使用网络服务建立传输连接原语参数含义UNSPECIFIED_PASSIVE_OPEN.request源端口,[超时],[超时动作],[优先级][安全度]侦听符合安全度和优先级要求的任意远端用户的连接尝试FULL_PASSIVE_OPEN.request源端口,目的端口,目的地址,[超时],[超时动作],[优先级],[安全度]侦听目标地址指明的符合安全度和优先级要求的远端用户的连接尝试ACTIVE_OPEN.request源端口,目的端口,目的地址,[超时],[超时动作],[优先级],[安全度]请求在一定的安全度和优先级上建立到指定用户的连接ACTIVE_OPEN_WITH_DATA.request源端口,目的端口,目的地址,[超时],[超时动作],[优先级],[安全度]数据长度,推送标志,紧急标志请求在一定的安全度和优先级上建立到指定用户的连接,同时传输数据SEND.request本地连接名,数据,数据长度,推送标志,紧急标志,[超时],[超时动作]通过指定的连接发送数据ALLOCATE.request本地连接名,数据长度为TCP分配一个接收数据的缓冲区CLOSE.request本地连接名有序释放连接ABORT.request本地连接名突然释放连接STATUS.request本地连接名报告连接状态2013-12-0552TCP服务请求原语原语参数含义OPEN_ID.confirm本地连接名,源端口,目的端口,目的地址通知用户已建立的连接的名称OPEN_FAILURE.confirm本地连接名报告主动打开连接失败OPEN_SUCCESS.confirm本地连接名报告主动打开连接成功DELIVER.indication本地连接名,数据,数据长度,紧急标志报告数据到达CLOSING.indication本地连接名报告远端用户已发出CLOSETERMINATE.confirm本地连接名,描述报告连接已经终止STATUS_RESPONSE.confirm本地连接名,源端口,源地址,目的端口,等待ACK数,等待接收数,紧急状态,优先级,安全度,超时报告连接的当前状态ERROR.indication本地连接名,描述报告服务请求或内部错误2013-12-0553TCP服务指示、证实原语54TCP服务原语

TSAP2013-12-05三次握手方式建立TCP连接传输服务用户传输服务提供者网络传输服务用户传输服务提供者

(交互的TPDU)UNSEPECIFIED_PASSIVE_OPEN.

request

ACTIVE_OPEN.request

OPEN_ID.confirm

ID#

x

OPEN_ID.confirm

ID#

y,ACK

x+1

OPEN_SUCCESS.confirm

ACK

y+1

OPEN_SUCCESS.confirm系统A:server系统B:clientTSAP4.

运输层的端口运行在计算机中的进程是用进程标识符来标志的。运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在因特网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对

TCP/IP

体系的应用进程进行标志。需要解决的问题由于进程的创建和撤销都是动态的,发送方几乎无法识别其他机器上的进程。有时我们会改换接收报文的进程,但并不需要通知所有发送方。我们往往需要利用目的主机提供的功能来识别终点,而不需要知道实现这个功能的进程。端口号(protocol

port

number)

简称为端口(port)解决这个问题的方法就是在运输层使用协议端口号(protocol

port

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

TCP来完成。软件端口与硬件端口在协议栈层间的抽象的协议端口是软件端口。路由器或交换机上的端口是硬件端口。硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。TCP

的端口端口用一个

16

位端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。传输层

602013-12-05

传输服务访问点TSAP(Transport

Service

Access

Point)两个程序要建立连接时,必须指明对方是哪一个应用程序,这个标记称为传输层地址,也称为传输服务访问点(TSAP)在TCP协议中传输层地址即TCP的端口号网络层地址称为网络服务访问点NSAP(NetworkService

Access

Point),NSAP在IP协议中即IP地址2013-12-0561传输层2013-12-0562端口的概念

UDP和TCP都使用了与上层接口处的端口(port)与

上层的应用进程进行通信。应用层的各种进程是通过相

应的端口与传输实体进行交互的。因此在传输协议数据

单元(即TCP报文段或UDP用户数据报)的头部中要写

入源端口号和目的端口号。当传输层收到IP层交上来

的数据,就要根据其目的端口号来决定应当通过哪一个

端口上交给目的应用进程。

用OSI的术语,端口就是传输服务访问点TSAP。端口

的作用就是让应用层的各种应用进程将其数据通过端口

向下交付给传输层,以及让传输层知道应当将其报文段

中的数据向上通过端口交付给应用层相应的进程。

端口是用一个16比特的端口号进行标志。可允许64K

个端口号。三类端口熟知端口,数值一般为

0~1023。登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在

IANA

登记,以防止重复。客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。2013-12-0564套接字(socket):为了在通信时不致发生混乱,就必须把端口号和主机的IP地址结合在一起使用。一个TCP连接由它的两个端点来标志,而每个端点又是由IP地址和端口号决定的。将TCP连接的端点称为套接字(socket)。例如:若IP地址为3,端口号为1500,则套接字(socket)为(

3

1500)。寻址(Addressing)方法:定义传输服务访问点TSAP(Transport

ServiceAccess

Point),将应用进程与这些TSAP相连。在Internet中,TSAP为(IP

address,

local

port)套接字原语含义SOCKET创建一个新的连接端口BIND绑定连接端口与本地地址LISTEN声明愿意接受连接,给出连接请求队列的大小ACCEPT阻塞呼叫者,直到连接尝试到达CONNECT尝试建立连接SEND通过连接发送数据RECEIVE通过连接接收数据CLOSE释放连接2013-12-0565Berkeley

Socket(套接字)传输层

662013-12-05如何知道对方的TSAPwell-known

TSAP

每个服务都有自己固定的TSAP,所有网络用户都

知道采用名字服务器(name

server)或目录服务器(directory

server)

用户与名字服务器建立连接,向服务器发送一个报

文,指明服务的名称,服务器将该服务对应的

TSAP返回给用户,类似于114查号服务器方将分配的TSAP通知主机进程服务器传输层

67服务器方将分配的TSAP通知主机初始连接协议(initial

connection

protocol)2013-12-05

主机1的用户进程如何与主机2的时间服务器建立连接(a)(b)用户主机1主机2TSAP用户主机1主机2

进程服务器时间服务

器2013-12-0568初始连接协议

当服务程序很多时,使用初始连接协议(initial

connection

protocol)

一个称为进程服务器(process

server)的进程(inetd)同时

在多个端口上监听;

远方客户程序向它实际想访问的服务程序的TSAP发出连接建

立请求;

如果没有服务程序在此TSAP上监听,则远方客户和进程服务

器建立连接;

进程服务器产生所请求的服务进程,并使该进程继承和远程

客户的连接;

进程服务器返回继续监听;

远方客户程序与所希望的服务程序进行数据传输。服务器1服务器2TSAP1522TSAP1836NSAP传输层

692013-12-05连接方案举例访问一个时间服务器TSAP、NSAP和传输连接应用进程TSAP

1208

传输连接

NSAP

应用层

传输层

网络层数据链路层

物理层21主机1主机234传输层

702013-12-05访问一个时间服务器的说明.5.主机2上的时间服务进程将自己连到1522号TSAP上,等待即将到来的请求,例如,可以用LISTEN调用主机1上的一个应用进程想找出当天的时间,便发出一个CONNECT请求,将1208号TSAP设定为源地址,将1522号TSAP设定为目的地址主机1上的应用进程发送一个时间请求主机2上的服务器进程以当前的时间作为应答传输连接释放2013-12-05Transport

Layer3-71Multiplexing/demultiplexingapplicationP1applicationapplicationP2P3P4transportnetworklinkphysical

host

1transport

network

link

physical

host

2

transport

network

link

physicalhost

3

Demultiplexingatrcvhost:delivering

received

segmentsto

correct

socket

=

socket

=

process

Multiplexingatsendhost:gathering

data

from

multiplesockets,

enveloping

data

withheader

(later

used

fordemultiplexing)TCP/IP传输层的UDP和TCP

725

TCP协议

两个重要协议

传输控制协议TCP

用户数据报协议UDP

TCP和UDP都使用IP协议

TCP提供面向连接的服务,但不提

供广播或多播服务

UDP在传送数据之前不需要预先建

立连接2013-12-05用户数据报协议

UDPUDP

只在

IP

的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。虽然

UDP

用户数据报只能提供不可靠的交付,但

UDP

在某些方面有其特殊的优点。UDP

的主要特点UDP

是无连接的,即发送数据之前不需要建立连接。UDP

使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。UDP

是面向报文的。UDP

没有拥塞控制,很适合多媒体通信的要求。UDP

支持一对一、一对多、多对一和多对多的交互通信。UDP

的首部开销小,只有

8

个字节。面向报文的

UDP发送方

UDP

对应用程序交下来的报文,在添加首部后就向下交付

IP

层。UDP

对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。应用层交给

UDP

多长的报文,UDP

就照样发送,即一次发送一个报文。接收方

UDP

对

IP

层交上来的

UDP

用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。应用程序必须选择合适大小的报文。UDP

是面向报文的IP

首部UDP

首部

UDP

用户数据报的数据部分IP

数据报的数据部分运输层

IP

层应用层报文应用层UDP

的首部格式据首

部源

IP

地址目的

IP

地址017

UDP长度

数IP

数据报字节44112

12伪首部

2源端口

2目的端口

2长

度

2检验和字节发送在前数据首

部UDP

用户数据报UDP

基于端口的分用端口

2端口

3端口

1UDP

分用

UDP

数据报到达

IP

层据首

部源

IP

地址目的

IP

地址017

UDP长度

数IP

数据报字节44112

12伪首部

2源端口

2目的端口

2长

度

2检验和字节发送在前数据首

部UDP

用户数据报用户数据报

UDP

有两个字段:数据字段和首部字段。首部字段有

8

个字节,由

4

个字段组成,每个字段都是两个字节。据首

部源

IP

地址目的

IP

地址017

UDP长度

数IP

数据报字节44112

12伪首部

2源端口

2目的端口

2长

度

2检验和字节发送在前数据首

部UDP

用户数据报在计算检验和时,临时把“伪首部”和

UDP

用户数据报连接在一起。伪首部仅仅是为了计算检验和。153.18.1041全0171510871315全0数据数据数据数据数据数据数据全0计算

UDP

检验和的例子10011001

00010011→153.1900001000

0110100010101011

0000001100001110

0000101100000000

0001000100000000

0000111100000100

0011111100000000

0000110100000000

00001111

→

→→

→→→

→→

8.104

171.314.11

0

和

17151087

131500000000

0000000001010100

0100010101010011

0101010001001001

0100111001000111

00000000→→→→→0(检验和)数据数据数据数据和

0(填充)

12

字节

伪首部

8

字节UDP

首部

7

字节

数据填充按二进制反码运算求和

10010110

11101101

→

求和得出的结果

将得出的结果求反码

01101001

00010010

→

检验和传输控制协议

TCP

概述TCP

是面向连接的运输层协议。每一条

TCP

连接只能有两个端点(endpoint),每一条

TCP

连接只能是点对点的(一对一)。TCP

提供可靠交付的服务。

TCP

提供全双工通信。面向字节流。8

7

6

HTCP

面向流的概念发送

TCP

报文段把字节写入

发送缓存1235

4131211H

加上

TCP

首部构成

TCP

报文段

20

19TCP

1817161514从接收缓存

读取字节

TCP发送方

应用进程

21

字节流接收方

应用进程

0

字节流H

表示

TCP

报文段的首部

x

表示序号为

x

的数据字节

109

HTCP

连接应当注意TCP

连接是一条虚连接而不是一条真正的物理连接。TCP

对应用进程一次把多长的报文发送到TCP

的缓存中是不关心的。TCP

根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP

发送的报文长度是应用进程给出的)。TCP

可把太长的数据块划分短一些再传送。TCP也可等待积累有足够多的字节后再构成报文段发送出去。TCP

的连接--套接字

(socket)套接字

socket

=

(IP地址:

端口号)(5-1)

每一条

TCP

连接唯一地被通信两端的两个

端点(即两个套接字)所确定。即:TCP

连接

::=

{socket1,

socket2}=

{(IP1:

port1),

(IP2:

port2)}(5-2)端口号关键字服务说明21FTP文件传输协议23TELNET终端连接25SMTP简单邮件传输协议53DNS域名解析协议80HTTP超文本传输协议110POP-3远程E-mail访问2013-12-0586常用TCP端口表

已分配的常用的TCP端口2013-12-0587TCP协议

TCP协议提供端到端数据流服务,其中包含确保数据可靠

传送的机制。这些机制包括校验和、序列号、计时器、确

认以及重传机制。TCP是一种面向连接的协议,可以为应

用层提供可靠、有序的数据传送。

TCP协议实现所提供服务的特点

面向连接(Connection

Orientation)

完全可靠(Complete

Reliability)

全双工通信(Full

Duplex

Communication)

流接口(Stream

Interface)

可靠的连接建立(Reliable

Connection

Startup)

完美的连接终止(Graceful

Connection

Shutdown)2013-12-0588TCP协议

TCP

协议

按字节分配序号,对传送数据的每一个字节进行编号;

32位的序号

传输实体之间使用段(segment)(TPDU)交换数据;

每个段包含一个20字节的头(选项部分另加)和0个或

多个数据字节。段的大小必须首先满足65535字节的IP

包数据净荷长度限制,还要满足底层网络传输介质的最

大传输单元(MTU)的限制,比如以太网的MTU为

1500字节;

TCP实体使用滑动窗口协议,确认序号等于接收方希望

接收的下一个序号。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部20

字节的固定首部位

08162431TCP

首部

TCP

数据部分IP

数据部分

TCP

报文段发送在前

IP

首部5.5

TCP

报文段的首部格式

32

位源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431源端口和目的端口字段——各占

2

字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431序号字段——占

4

字节。TCP

连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431确认号字段——占

4

字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431数据偏移(即首部长度)——占

4

位,它指出

TCP

报文段的数据起始处距离

TCP

报文段的起始处有多远。“数据偏移”的单位是

32

位字(以

4

字节为计算单位)。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431保留字段——占

6

位,保留为今后使用,但目前应置为

0。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节位

08162431

固定

首部紧急

URG

——

当

URG

1

时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431确认

ACK

——

只有当

ACK

1

时确认号字段才有效。当

ACK

0

时,确认号无效。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431推送

PSH

(PuSH)

——

接收

TCP

收到

PSH

=

1

的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431复位

RST

(ReSeT)

——

当

RST

1

时,表明

TCP

连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充

20字节固定首部位

08162431TCP首部

同步

SYN

——

同步

SYN

=

1

表示这是一个连接请

求或连接接受报文。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431终止

FIN

(FINis)

——

用来释放一个连接。FIN

1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431窗口字段

——

占

2

字节,用来让对方设置发送窗口的依据,单位为字节。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431检验和

——

占

2

字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在

TCP报文段的前面加上

12

字节的伪首部。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431紧急指针字段

——

占

16

位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。源端口目的端口序号是TCP报文段中的数据字段TCP确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部固定首部比特

08162431选项字段

——

长度可变。TCP

最初只规定了一种选项,即最大报文段长度

MSS。MSS

告诉对方

TCP:“我的缓存所能接收的报文段的数据字段的最大长度是

MSS

个字节。”的最大长度。

20

字节其他选项窗口扩大选项

——占

3

字节,其中有一个字节表示移位值

S。新的窗口值等于TCP

首部中的窗口位数增大到(16

+

S),相当于把窗口值向左移动

S

位后获得实际的窗口大小。时间戳选项——占10

字节,其中最主要的字段时间戳值字段(4

字节)和时间戳回送回答字段(4

字节)。选择确认选项——在后面的

5.6.3

节介绍。源端口目的端口序号确认号数据偏移保留URGACKPSHRSTSYNFIN窗口检验和紧急指针选项(长度可变)填充TCP首部

20字节固定首部位

08162431填充字段

——

这是为了使整个首部长度是

4

字节的整数倍。

TCP

的运输连接管理1.

运输连接的三个阶段运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。连接建立过程中要解决以下三个问题:要使每一方能够确知对方的存在。要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。客户服务器方式TCP

连接的建立都是采用客户服务器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(server)。CLOSED主动打开CLOSED

被动打开A客户

服务器B

5.1

TCP

的连接建立用三次握手建立

TCP

连接A

的

TCP

向

B

发出连接请求报文段,其首部中的同步位

SYN

=

1,并选择序号

seq

=

x,表明传送数据时的第一个数据字节的序号是

x。CLOSED主动打开CLOSED

被动打开A客户

服务器B

5.1

TCP

的连接建立用三次握手建立

TCP

连接•

B

的

TCP

收到连接请求报文段后,如同意,则

发回确认。•

B

在确认报文段中应使

SYN

=

1,使

ACK

=

1,

其确认号ack

=

x

1,自己选择的序号

seq

=

y。CLOSED主动打开CLOSED

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论