- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章传输层协议资料
第8章 传输层协议 8.1 进程间通信 8.2 TCP段格式 8.3 TCP连接的建立和拆除 8.4 TCP流量控制 8.5 TCP拥塞控制 8.6 TCP差错控制 8.7 TCP状态转换图 8.8 用户数据报协议UDP 网络层用IP数据报统一了不同物理网络的帧,用IP地址统一了不同物理网络的物理地址,但网络层没有对不同网络所提供的服务进行统一。Why? 因为通信子网(网络层及其以下层)往往由不同电信运营商负责维护和提供服务,因此所提供的服务和服务的质量QoS存在差异。 How to resolve? 用户无法对通信子网进行控制,因此用户只能通过更高的传输层来屏蔽通信子网的差异,向上提供统一的服务界面。 本章将对传输层的TCP以及UDP协议进行讨论。 8.1 进程间通信 传输层实现了端到端的不同计算机进程间的数据传输。 由于在一台计算机中同时存在多个进程,要进行进程间的通信,首先要解决进程的标识问题。TCP和UDP采用端口来标识主机上的通信进程。 端口:端口是应用层与传输层的服务访问点。从通信角度看,端口是通信进程的标识,进程与端口建立关联后,传输层传给该端口的数据都会被相应的进程所接收。 端口拥有端口号。端口号16比特,因此,端口号的取值范围是0到65535。 TCP和UDP都是提供进程通信的传输层协议,各有一套端口号,都是从0到65535。 因此,为了区别数据通信,除了给出主机IP地址和端口号之外,还要指明协议是基于TCP和基于UDP 。 因特网中要全局唯一标识一个进程必须采用一个三元组:(协议,主机地址,端口号) 网络通信本质是两个进程之间的通信,并且通信双方采用的协议是相同的,所以可以用一个五元组来描述这个通信:(协议, 本地主机地址, 本地端口号, 远地主机地址, 远地端口号) 因特网通信通常采用客户/服务器模型。过程是:客户向服务器发出服务请求,服务器完成请求中所要求的操作,然后给出响应。 服务器一般要先于客户端启动,为了让客户能够找到服务器,服务器必须使用一个客户熟知的地址。 熟知地址的含义:协议是双方约定的协议,主机IP地址是固定且公开的,端口号必须是大家所熟知的。 因此,每一个标准的服务器进程都拥有一个熟知的端口号。 熟知端口以全局方式进行分配。TCP和UDP规定,0~1023的端口号用作熟知端口,又称为保留端口。如FTP服务器控制进程固定使用TCP 21端口,SMTP服务器进程使用TCP 25端口,HTTP服务器进程使用TCP 80端口。 客户进程一般采用临时端口号(1024~65535)。在使用时由客户进程向操作系统申请,使用完后再交还给操作系统。 Socket套接字 套接字(socket)是系统进程通信的编程界面,支持客户/服务器模型。 套接字地址是进程通信的端点,包含IP地址,协议,端口号。客户和服务器进程通信之前,双方先各自创建一个套接字地址,构成各自的半关联,然后客户根据服务器的熟知地址建立socket连接。 一个socket连接可以用如下关联描述: (协议,本地主机地址,本地端口号,远地主机地址,远地端口号) TCP协议和UDP协议 TCP是面向流的协议,双方以字节流发收数据。字节流在建立的连接之上按顺序发送,并且按顺序到达信宿机。图8-1给出了TCP端口和字节流的直观描述。 8.2 TCP段格式 TCP将应用层的数据分块并封装成TCP段进行发送。 TCP段=段首部+数据 段首部 = 定长部分 + 变长部分 定长部分:20字节 变长部分=选项+填充,长度: 0到40字节之间,且一定为4字节的整数倍。 下面介绍TCP段中各个字段: TCP选项是变长字段,当前TCP使用的选项: 无操作选项为单字节选项,代码字段为1,用于选项的填充,实现段首部的32位对齐。 最大段大小(MSS)选项为4字节选项,代码字段为2,长度字段为4,最后两个字节用于标识本机能够接收的最大段的字节数。该值范围为0到65535,默认值为536。 窗口规模因子选项为3字节选项,代码字段为3,长度字段为3。在TCP段首部中有16比特的窗口大小字段,用于指明对方维持的缓冲区窗口大小,但在高吞吐和低延迟的网络中,65535字节的窗口仍然嫌小。此时可通过选项中的窗口规模因子增加窗口的大小。扩展后的窗口大小为: Wn=Wo×2f Wn为新的窗口大小,Wo为TCP首部中窗口大小字段的值,f为窗口规模因子。 时间戳选项为10字节选项,代码字段为8,长度字段为10。时间戳值字段由信源在发送TCP段时填写,信宿收到段后,将收到的时间填入应答选项中的时间戳回显应答字段,信源端根据该时间戳值和当前时间戳可以计算出数据段的往返时间。 8.3 TCP连接的建立和拆除 8.3.1 TCP连接的
文档评论(0)