传输层协议精.ppt
《传输层协议精.ppt》由会员分享,可在线阅读,更多相关《传输层协议精.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、传输层协议第1页,本讲稿共46页8.1 进程间通信进程间通信由于在一台计算机中同时存在多个进程,要进行进程间的通由于在一台计算机中同时存在多个进程,要进行进程间的通信,信,首先要解决进程的标识问题首先要解决进程的标识问题。TCPTCP和和UDPUDP采用协议采用协议端端口口来标识某一主机上的通信进程。来标识某一主机上的通信进程。必须给出必须给出全局惟一全局惟一的信宿端的进程标识符。的信宿端的进程标识符。主机可以用主机可以用IPIP地址进行标识地址进行标识,IPIP地址是全局惟一的,再给主机上的进地址是全局惟一的,再给主机上的进程赋予一个程赋予一个本地惟一的标识符本地惟一的标识符端口号端口号,二
2、者加起来,便形,二者加起来,便形成了进程的全局惟一标识符。成了进程的全局惟一标识符。第2页,本讲稿共46页端口端口:传输层服务访问点:传输层服务访问点TSAP。从内部实现看,端口是一种从内部实现看,端口是一种抽象的软件结构抽象的软件结构(数据数据结构和结构和I/O缓冲区缓冲区)从通信对方看,端口是从通信对方看,端口是通信进程的标识通信进程的标识,应用进,应用进程通过系统调用与端口建立关联后,传输层传给程通过系统调用与端口建立关联后,传输层传给该端口的数据都会被相应的应用进程所接收该端口的数据都会被相应的应用进程所接收从本地应用进程看,端口是进程从本地应用进程看,端口是进程访问传输服务的访问传输
3、服务的入口点入口点。每个端口拥有一个每个端口拥有一个端口号端口号(port number),端口号是),端口号是16比特比特的标识符,因此,端口号的取值范围是从的标识符,因此,端口号的取值范围是从0到到65535。端口分配端口分配有两种基本的方式:全局端口分配和本地端口有两种基本的方式:全局端口分配和本地端口分配。分配。第3页,本讲稿共46页TCP和和UDP都是都是提供进程通信能力提供进程通信能力的传输层协议,的传输层协议,各有一各有一套套端口号,都是从端口号,都是从0到到65535。同一个端口在同一个端口在TCP和和UDP中可能对应于中可能对应于不同不同类型的应用进程,类型的应用进程,也可能
4、对应于也可能对应于相同相同类型的应用进程。为了区别类型的应用进程。为了区别TCP和和UDP的进程,除了给出主机的进程,除了给出主机IP地址和端口号之外,还要地址和端口号之外,还要指明协指明协议议。因特网中要全局惟一地标识一个进程必须采用一个因特网中要全局惟一地标识一个进程必须采用一个三元组三元组:(协议,主机地址,端口号)(协议,主机地址,端口号)网络通信是两个网络通信是两个进程之间的通信进程之间的通信,两个通信的进程构成一个,两个通信的进程构成一个关联关联。这个关联应该包含两个三元组,由于通信双方采用的协。这个关联应该包含两个三元组,由于通信双方采用的协议必须是相同的,可以用一个议必须是相同
5、的,可以用一个五元组五元组来描述两个进程的关联:来描述两个进程的关联:(协议(协议,本地主机地址本地主机地址,本地端口号本地端口号,远地主机地址远地主机地址,远地端口号)远地端口号)第4页,本讲稿共46页因特网通信进程间的因特网通信进程间的相互作用模式相互作用模式:客户客户/服务器模型服务器模型。客。客户户/服务器模型相互服务器模型相互作用的过程作用的过程是:客户向服务器发出服务是:客户向服务器发出服务请求,服务器完成客户所要求的操作,然后给出响应。请求,服务器完成客户所要求的操作,然后给出响应。服务器一般先于客户端启动,为了让客户能够找到服务器,服务器一般先于客户端启动,为了让客户能够找到服
6、务器,服务器必须使用一个服务器必须使用一个客户熟知的地址客户熟知的地址,客户可以根据此地址,客户可以根据此地址向服务器提出服务请求。向服务器提出服务请求。熟知地址的含义:熟知地址的含义:协议协议是双方约定的协议,主机是双方约定的协议,主机IP地址地址是固是固定且公开的,定且公开的,端口号端口号是大家所熟知的。是大家所熟知的。第5页,本讲稿共46页每一个标准的服务器都拥有一个熟知的端口号,不同主机每一个标准的服务器都拥有一个熟知的端口号,不同主机上相同服务器的端口号是相同的。客户进程一般采用上相同服务器的端口号是相同的。客户进程一般采用临时临时端口号端口号,而不采用熟知的端口号。临时端口是使用时
7、向操,而不采用熟知的端口号。临时端口是使用时向操作系统作系统申请申请,由操作系统,由操作系统分配分配,使用使用完后再完后再交交由操作系统管由操作系统管理的端口。因此,只要同一时间同一主机上的应用进程数量不理的端口。因此,只要同一时间同一主机上的应用进程数量不超过可分配的临时端口数量就能保证系统的正常运行。超过可分配的临时端口数量就能保证系统的正常运行。熟知端口所占端口号不多,以全局方式进行分配。熟知端口所占端口号不多,以全局方式进行分配。TCP和和UDP规定,规定,小于小于1024的端口号用作熟知端口,熟知端口又称的端口号用作熟知端口,熟知端口又称为为保留端口保留端口。第6页,本讲稿共46页从
8、从1024到到65535编号的端口为临时端口,临时端口又称编号的端口为临时端口,临时端口又称为为自由端口自由端口。临时端口占全部端口的绝大部分,以本地方。临时端口占全部端口的绝大部分,以本地方式进行分配。当进程要与远地进程通信时,首先申请一个式进行分配。当进程要与远地进程通信时,首先申请一个临时端口,然后根据全局分配的熟知端口号与远地服务器临时端口,然后根据全局分配的熟知端口号与远地服务器建立联系,传输数据。建立联系,传输数据。TCP/IP结合了两种端口分配方式结合了两种端口分配方式,既保证了灵活性,又,既保证了灵活性,又方便了建立通信进程间的联系。方便了建立通信进程间的联系。第7页,本讲稿共
9、46页01023Well-known102449151Registered4915265535Dynamic第8页,本讲稿共46页TCP要将数据分为分组,要将数据分为分组,TCP所采用的分组称为所采用的分组称为TCP段。段。TCP段不定长段不定长,被封装在,被封装在IP数据报中传输。数据报中传输。IP数据报不能数据报不能保证数据的按序到达,还可能造成数据的丢失或毁坏,这些问保证数据的按序到达,还可能造成数据的丢失或毁坏,这些问题经过题经过TCP协议的处理后,对上层提供的是协议的处理后,对上层提供的是可靠的无差错可靠的无差错的服务的服务。返回返回第9页,本讲稿共46页8.2 TCP段格式段格式T
10、CP将应用层的数据分块并封装成将应用层的数据分块并封装成TCP段进行发送。段进行发送。TCP段段=段首部段首部+数据数据段首部段首部(20到到60字节字节)=定长部分定长部分+变长部分变长部分定长部分定长部分长度:长度:20字节字节变长部分变长部分=选项选项+填充,长度填充,长度:0到到40字节之间。字节之间。TCP段格式中各个字段的含义和作用:段格式中各个字段的含义和作用:第10页,本讲稿共46页第11页,本讲稿共46页TCP伪首部的伪首部的信息来自信息来自IP数据报的首部数据报的首部,协议字段指明当前协,协议字段指明当前协议为议为TCP(6)。TCP段的发送端和接收端在计算校验和时都段的发
11、送端和接收端在计算校验和时都会加上伪首部信息。若接收端验证校验和是正确的,则说会加上伪首部信息。若接收端验证校验和是正确的,则说明数据到达了明数据到达了正确主机上正确协议的正确端口正确主机上正确协议的正确端口。第12页,本讲稿共46页TCP选项选项是变长字段,当前是变长字段,当前TCP使用的选项:使用的选项:选项结束选项结束标志为单字节选项,代码为标志为单字节选项,代码为0,用于表示选,用于表示选项结束。项结束。第13页,本讲稿共46页无操作无操作选项为选项为单字节选项单字节选项,代码为,代码为1,用于选项的填充,用于选项的填充,实现实现32位对齐。位对齐。最大段大小最大段大小(MSS)选项为
12、)选项为多字节选项多字节选项,代码为,代码为2,长度,长度为为4字节,最后两个字节用于标识本机能够接收的段的最大字节,最后两个字节用于标识本机能够接收的段的最大字节数。该值范围为字节数。该值范围为0到到65535,默认值为,默认值为536。窗口规模因子窗口规模因子选项为多字节选项,代码为选项为多字节选项,代码为3,长度为,长度为3字字节。在节。在TCP段的首部存在段的首部存在16比特的窗口大小字段,但在比特的窗口大小字段,但在高吞吐和低延迟的网络中,高吞吐和低延迟的网络中,65535字节的窗口仍然嫌小。字节的窗口仍然嫌小。通过在选项中采用窗口规模因子,可以增加窗口的大小。扩通过在选项中采用窗口
13、规模因子,可以增加窗口的大小。扩展后的窗口大小为:展后的窗口大小为:Wn=Wo2fWn为新的窗口大小,为新的窗口大小,Wo为为TCP首部窗口大小字段的值,首部窗口大小字段的值,f为窗口规模因子。为窗口规模因子。第14页,本讲稿共46页时间戳时间戳选项为多字节选项,选项为多字节选项,代码为代码为8,长度为长度为10字节字节。时。时间戳值字段由源端在发送数据段时填写,信宿端收到后,间戳值字段由源端在发送数据段时填写,信宿端收到后,在确认数据段中将收到的时间戳值填入时间戳回显应答字在确认数据段中将收到的时间戳值填入时间戳回显应答字段,信源端根据该时间戳值和当前时间戳可以计算出数据段,信源端根据该时间
14、戳值和当前时间戳可以计算出数据段的往返时间。段的往返时间。返回返回第15页,本讲稿共46页8.3 TCP连接的建立和拆除连接的建立和拆除8.3.1 TCP连接的建立连接的建立为了实现数据的为了实现数据的可靠传输可靠传输,TCP要在应用进程间建立传输要在应用进程间建立传输连接连接。从理论上讲,建立传输连接只需要一个请求和一个响应从理论上讲,建立传输连接只需要一个请求和一个响应就可以了。但是由于通信子网的问题,请求有可能丢失,就可以了。但是由于通信子网的问题,请求有可能丢失,为了解决请求的丢失问题,常用的办法是为了解决请求的丢失问题,常用的办法是超时重传超时重传。客户发出连接请求时,启动一个客户发
15、出连接请求时,启动一个定时器定时器,一旦定时器超时,一旦定时器超时,客户将被迫再次发起连接请求,会导致客户将被迫再次发起连接请求,会导致重复连接重复连接。第16页,本讲稿共46页解决解决重复连接的办法:三次握手方法。重复连接的办法:三次握手方法。三次握手方法要求三次握手方法要求对所有报文进行编号对所有报文进行编号,TCP采用的方采用的方法是给法是给每个字节一个每个字节一个32比特的序号比特的序号。每次建立连接时都产生一个新的每次建立连接时都产生一个新的初始序号初始序号。序号字段位数序号字段位数定定长,序号循环使用,序号字段长,序号循环使用,序号字段位数较长位数较长,当序号循环一周回来时,使用同
16、一序号的旧报文段早当序号循环一周回来时,使用同一序号的旧报文段早已传输完。这样,保证网络中不会同时出现来自同一已传输完。这样,保证网络中不会同时出现来自同一源主机的相同序号的两个不同报文段。源主机的相同序号的两个不同报文段。第17页,本讲稿共46页建立连接前,建立连接前,服务器端服务器端首先被动打开其熟知的端口,对端口首先被动打开其熟知的端口,对端口进行进行监听监听。当。当客户端客户端要和服务器建立连接时,发起一个要和服务器建立连接时,发起一个主主动打开端口动打开端口的请求(临时端口)。然后进入的请求(临时端口)。然后进入三次握手过程三次握手过程:第一次握手第一次握手:由要建立连接的客户向服务
17、器发出连接请求段,:由要建立连接的客户向服务器发出连接请求段,该段首部的该段首部的同步标志同步标志SYN被置为被置为1,并在首部中填入本次连,并在首部中填入本次连接的客户端的接的客户端的初始段序号初始段序号SEQ(例如(例如SEQ=26500)。)。第二次握手第二次握手:服务器收到请求后,发回:服务器收到请求后,发回连接确认连接确认(SYN+ACK),该段首部中的同步标志),该段首部中的同步标志SYN被置为被置为1,表,表示认可连接,首部中的确认标志示认可连接,首部中的确认标志ACK被置为被置为1,表示对所接收,表示对所接收的段的确认,与的段的确认,与ACK标志相配合的是准备接收的标志相配合的
18、是准备接收的下一序号下一序号(ACK 26501),该段还给出了自己的),该段还给出了自己的初始序号初始序号(例如(例如SEQ=29010)。对请求段的确认)。对请求段的确认完成了一个方向上连接完成了一个方向上连接。第18页,本讲稿共46页第三次握手第三次握手:客户向服务器发出的:客户向服务器发出的确认确认段,段首部段,段首部中的确认标志中的确认标志ACK被置为被置为1,表示对所接收的段的确,表示对所接收的段的确认,与认,与ACK标志相配合的准备接收的下一序号被设标志相配合的准备接收的下一序号被设置为收到的段序号加置为收到的段序号加1(ACK 29011)。完成了另一个。完成了另一个方向上的连
19、接。方向上的连接。第19页,本讲稿共46页8.3.2 TCP连接的拆除连接的拆除连接连接双方都可以发起拆除双方都可以发起拆除连接操作。连接操作。简单地拆除连接可能会造成数据丢失简单地拆除连接可能会造成数据丢失。例如,。例如,A、B两主机已建立连接并传输报文,两主机已建立连接并传输报文,A主机在主机在B主机没有主机没有准备的情况下,单方面发出断开连接请求,并停止准备的情况下,单方面发出断开连接请求,并停止接收该连接上的数据。但断开连接请求的传输要有接收该连接上的数据。但断开连接请求的传输要有一段时间,而在一段时间,而在B主机未收到断开连接请求之前,随主机未收到断开连接请求之前,随时可能向时可能向
20、A主机发送数据,会有丢失数据的可能性。主机发送数据,会有丢失数据的可能性。第20页,本讲稿共46页解决解决:TCP采用和三次握手类似的方法。这里可以将采用和三次握手类似的方法。这里可以将断开连接操作视为在断开连接操作视为在两个方向上分别断开连接操作两个方向上分别断开连接操作构构成。一方发出断开连接请求后并不马上拆除连接,而成。一方发出断开连接请求后并不马上拆除连接,而是等待对方的确认,对方收到断开连接请求后,发送是等待对方的确认,对方收到断开连接请求后,发送确认报文,这时拆除的只是单方向上连接(半连接)。确认报文,这时拆除的只是单方向上连接(半连接)。对方发送完数据后,再通过发送断开连接请求来
21、断开对方发送完数据后,再通过发送断开连接请求来断开另一个方向上的半连接。另一个方向上的半连接。返回返回第21页,本讲稿共46页8.4 TCP流量控制流量控制TCP除了提供除了提供进程通信能力进程通信能力外,主要特点是具有外,主要特点是具有高可靠性高可靠性。TCP在发送端与接收端之间建立一条连接,报文需要得到在发送端与接收端之间建立一条连接,报文需要得到接接收端的确认收端的确认。TCP传输的是一个无报文丢失、重复和失传输的是一个无报文丢失、重复和失序的正确的数据流。序的正确的数据流。TCP采用的最基本的采用的最基本的可靠性技术可靠性技术:流量控制流量控制拥塞控制拥塞控制差错控制差错控制第22页,
22、本讲稿共46页问题问题:在面向连接的传输过程中,发送方与接收方在发:在面向连接的传输过程中,发送方与接收方在发送报文的速率方面送报文的速率方面要协调一致要协调一致。若发送方一味地向网络注入数据,则可能造成网若发送方一味地向网络注入数据,则可能造成网络拥塞或因接收方来不及处理而丢失数据。络拥塞或因接收方来不及处理而丢失数据。若发送方每发出一个报文都等待对方的确认,势若发送方每发出一个报文都等待对方的确认,势必造成效率低下。必造成效率低下。解决解决:滑动窗口协议滑动窗口协议。采用滑动窗口协议既能够。采用滑动窗口协议既能够保证可保证可靠性靠性,又可以,又可以充分利用网络的传输能力充分利用网络的传输能
23、力。这种方案允许。这种方案允许连续连续传输多个报文传输多个报文而不必等待各个报文的确认,能够连续发而不必等待各个报文的确认,能够连续发送的报文数受到送的报文数受到窗口大小的限制窗口大小的限制。第23页,本讲稿共46页滑动窗口协议通过发送方窗口和接收方窗口的配合来完成滑动窗口协议通过发送方窗口和接收方窗口的配合来完成传输控制。传输控制。发送缓存中是一组顺序编号的字节数据,这些数据的一部分发送缓存中是一组顺序编号的字节数据,这些数据的一部分在在发送窗口发送窗口中,另一部分在发送窗口外。图中发送缓存左端和右中,另一部分在发送窗口外。图中发送缓存左端和右端空白处表示可以填入数据的空闲缓存,实际上可以将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传输 协议
限制150内