预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共62页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章传输层协议弥补是针对服务类型而言的,传输层提供端到端进程间的通信。 加强主要是针对QoS而言的,通常指提高服务的可靠性。 但是高可靠性往往伴随着较大的开销。因此,传输层通常提供多种不同类型的服务让用户选择。 在TCP/IP协议的传输层,提供了面向连接的传输控制协议TCP和无连接的用户数据报协议UDP。 TCP和UDP有不同的适用范围:TCP适用于可靠性较差的广域网,UDP适用于可靠性较高的局域网。第8章传输层协议8.1进程间通信端口: 从内部实现看,端口是一种抽象的软件结构(数据结构和I/O缓冲区) 从通信对方看,端口是通信进程的标识,应用进程通过系统调用与端口建立关联后,传输层传给该端口的数据都会被相应的应用进程所接收 从本地应用进程看,端口是进程访问传输服务的入口点。 每个端口拥有一个端口号(portnumber),端口号是16比特的标识符,因此,端口号的取值范围是从0到65535。 端口分配有两种基本的方式:全局端口分配和本地端口分配。全局端口分配:集中控制,由权威管理机构统一分配。 优点:特定应用程序对应的端口是众所周知的,方便对进程的寻址。 缺点:不能适应大量且变化迅速的端口使用环境,即使端口号再多,也无法满足无限制发展的应用程序要求,而且任何变化都会带来较大的管理工作量。 本地端口分配:进程需要访问传输服务时,向本地操作系统提出动态申请,操作系统返回一个本地惟一的端口号,进程通过系统调用将自己和相应端口号关联起来;静态指定。 优点:灵活方便,不受应用程序数量的限制。 缺点:其他主机难以得知分配结果。TCP和UDP都是提供进程通信能力的传输层协议,各有一套端口号,都是从0到65535。 同一个端口在TCP和UDP中可能对应于不同类型的应用进程,也可能对应于相同类型的应用进程。为了区别TCP和UDP的进程,除了给出主机IP地址和端口号之外,还要指明协议。 因特网中要全局惟一地标识一个进程必须采用一个三元组:(协议,主机地址,端口号) 网络通信是两个进程之间的通信,两个通信的进程构成一个关联。这个关联应该包含两个三元组,由于通信双方采用的协议必须是相同的,可以用一个五元组来描述两个进程的关联:(协议,本地主机地址,本地端口号,远地主机地址,远地端口号)因特网通信进程间的相互作用模式:客户/服务器模型。客户/服务器模型相互作用的过程是:客户向服务器发出服务请求,服务器完成客户所要求的操作,然后给出响应。 服务器一般先于客户端启动,为了让客户能够找到服务器,服务器必须使用一个客户熟知的地址,客户可以根据此地址向服务器提出服务请求。 熟知地址的含义:协议是双方约定的协议,主机IP地址是固定且公开的,端口号是大家所熟知的。(知名端口号)每一个标准的服务器都拥有一个熟知的端口号(知名端口号),不同主机上相同服务器的端口号是相同的。客户进程一般采用临时端口号,而不采用熟知的端口号。临时端口是使用时向操作系统申请,由操作系统分配,使用完后再交由操作系统管理的端口。因此,只要同一时间同一主机上的应用进程数量不超过可分配的临时端口数量就能保证系统的正常运行。 熟知端口所占端口号不多,以全局方式进行分配。TCP和UDP规定,小于1024的端口号用作熟知端口,熟知端口又称为保留端口。从1024到65535编号的端口为临时端口,临时端口又称为自由端口。临时端口占全部端口的绝大部分,以本地方式进行分配。当进程要与远地进程通信时,首先申请一个临时端口,然后根据全局分配的熟知端口号与远地服务器建立联系,传输数据。 TCP/IP结合了两种端口分配方式,既保证了灵活性,又方便了建立通信进程间的联系。套接字socket:系统提供的进程通信编程界面,支持客户/服务器模型。socket地址提供了进程通信的端点。客户和服务器进程通信之前,双方先各自创建一个端点,构成各自的半关联,然后客户根据服务器的熟知地址建立socket连接。一个socket连接可以用一个完整的关联描述: (协议,本地主机地址,本地端口号,远地主机地址,远地端口号) 每个socket有一个由操作系统分配的本地惟一的socket号。 TCP是面向流的协议。数据在建立的连接之上按顺序发送,并且按顺序到达信宿。TCP要将数据分为分组,TCP所采用的分组称为TCP段。TCP段不定长,被封装在IP数据报中传输。IP数据报不能保证数据的按序到达,还可能造成数据的丢失或毁坏,这些问题经过TCP协议的处理后,对上层提供的是可靠的无差错的服务。8.2TCP段格式序号:32比特,指出段中的数据部分在发送端数据流中的位置。也就是发送的数据部分第一个字节的序号。 确认号:32比特,指出接收端希望收到对方下次发送的数据的第一个字节的序号。这个序号表明该序号以前的数据已经被正确接收。TCP采用载答技术,在发