盛立军《计算机网络技术基础》ppt课件第四章.pptx
《盛立军《计算机网络技术基础》ppt课件第四章.pptx》由会员分享,可在线阅读,更多相关《盛立军《计算机网络技术基础》ppt课件第四章.pptx(100页珍藏版)》请在三一办公上搜索。
1、,计算机网络技术基础,第4章,TCP/IP协议集,不同的厂家生产的计算机运行的操作系统可能完全不同,却因为有了TCP/IP协议族而能够进行相互通信。TCP/IP协议族包含很多协议,其中最重要的两个协议分别是传输控制协议(Transmission Control Protocol,TCP)协议和网际互连协议(Internet Protocol,IP)。本章将介绍TCP/IP协议族里比较核心的一些协议。,学 习 目 标,4.1 用户数据报协议UDP,在TCP/IP协议族中,有两个传输层协议:传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User
2、 Datagram Protocol,UDP)。其中,TCP是面向连接的、提供可靠服务的协议;UDP则是无连接的,它提供高效但低可靠性的服务。,UDP是一个简单的面向数据报的传输层协议:发送端的UDP对应用程序传下来的报文,只在其首部仅仅加入了复用和数据校验字段后就交付IP层。也就是说,应用层交给UDP多长的报文,UDP就一次照样发送一个报文,如图4-1所示。在接收端的UDP收到IP层交付的数据报后,去掉首部后原封不动地交付给上层的应用程序。,图4-1 发送端的UDP传输过程,UDP提供应用进程之间传送数据的基本机制,它使用网络层协议所提供的功能,向应用层提供服务,为网络层以上和应用层以下提供
3、了一个简单的接口。,4.1.1 UDP的主要特点,UDP的主要特点包括:,4.1 用户数据报协议UDP,(1)UDP提供无连接的服务,即在传输数据之前不需事先建立连接。UDP无连接的特点使得数据传输时延比较小。,(2)UDP不提供可靠性。UDP把应用层传给IP层的数据发送出去,使用尽最大努力交付,但是并不保证它们能够可靠交付。由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、实时多媒体游戏和VoIP(Voice over IP)就是典型的UDP应用。,4.1 用户数据报协议UDP,(3)UDP缺乏拥塞
4、避免和控制机制,网络出现的拥塞不会使源主机的发送速率变低,因此需要基于网络的拥塞控制机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。使用包队列和丢弃技术的路由器等网络基本设备往往就成为了降低UDP过大通信量的有效工具。此外,数据报拥塞控制协议(Datagram Congestion Control Protocol,DCCP)是通过在诸如流媒体类型的高速率UDP流中增加主机拥塞控制来解决拥塞问题。,(4)UDP支持一对一、一对多、多对一和多对多的交互通信。,4.1.2 UDP端口号分配,协议端口是传输层引入的一个非常重要的概念。网络中的通信实际上是进程间的通信,应用程序才是一个IP数
5、据报的最终目的地。大多数计算机的操作系统都支持多进程并发功能,即允许多个应用程序同时运行。因此,通信双方进行通信时,不仅要知道目的主机的IP地址,还应该确定数据交付的具体应用进程。为了解决这个问题,传输层协议引入了不同的协议端口(简称端口)来表示不同的应用程序。与远程服务程序通信时,发送方不仅要知道目的主机的地址,每个IP数据报还必须带有目的主机的协议端口号。同样,为使接收方知道把回应数据发送给谁,发送端在IP数据报中还必须带有自身的协议端口号。,4.1 用户数据报协议UDP,TCP/IP参考模型的传输层用一个16位的端口号来标志一个端口,因此允许有65 535个不同的端口号,这对于一个计算机
6、来讲是足够用的。TCP/IP协议约定:01023为保留端口号,为标准应用服务使用;1024以上是自由端口号(也称动态端口号),为用户应用服务使用。,4.1 用户数据报协议UDP,表4-1列出了常见的UDP服务端口号。,表4-1 常见UDP服务及端口号,4.1 用户数据报协议UDP,提 示,4.1 用户数据报协议UDP,4.1.3 UDP数据报格式,图4-2 UDP数据报格式,4.1 用户数据报协议UDP,UDP数据报首部中各16位的源端口号和目的端口号用来标记发送和接收的应用进程。因为UDP不需要应答,所以源端口号是可选的(如果源端口不用,那么置为零)。在目的端口号后面是长度固定的以字节为单位
7、的长度字段,用来指定UDP数据报中包括数据部分的长度,最小值为8(仅有首部)。16位的UDP校验和是用来对首部和数据部分一起做校验和的,检测UDP用户数据报在传输中是否出错。当传输层从IP层收到UDP数据报后,根据首部中的目的端口将其交付给相应的应用程序。如果接收方UDP发现没有与收到的报文中的目的端口号匹配的端口,则丢弃该报文,并发送“端口不可达”差错报文给发送端;如果匹配端口号已满,也丢弃该报文,但不回送差错报文,只能等待超时重发。,4.2 传输控制协议TCP,传输控制协议(Transmission Control Protocol,TCP)是传输层上另一著名的协议,它也是TCP/IP最具
8、代表性的协议。,4.2.1 TCP的主要特点,TCP除提供进程通信能力外,主要提供端到端的面向连接的、可靠的字节流服务。从应用程序的角度看,TCP提供的服务有如下特征。,(1)面向连接的服务。面向连接意味着两个使用TCP的应用程序(通常为一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。TCP连接只存在于两个终端结点,网络当中的中间结点(如路由器和网桥)对这个连接毫不知情(只知道传输的数据而不是连接本身)。,4.2 传输控制协议TCP,(2)面向字节流的服务。流是无报文丢失、重复和失序的数据序列,两个应用程序通过TCP连接交换字节流。TCP协议从应用程序处收集数据后,封装成长度
9、适中的一个数据报文段。在报文头中的序号域指出段中数据在发送端数据流中的位置。TCP协议为实现流传输服务付出了大量开销。,(3)可靠交付。TCP的传输过程由建立连接、传输数据和释放连接3个步骤组成。一个应用程序在发送数据时,首先要请求建立连接。通过TCP连接传送的数据,无差错、不丢失、不重复并且按序到达。,(4)全双工通信。TCP连接提供的是全双工的数据传输,采用点对点的方式,即在一个TCP连接中仅有两方进行通信,因此广播和多播方式不能用TCP。,(5)流量控制。TCP连接的双方都有固定大小的缓冲区,流量控制可以防止较快主机致使较慢主机的缓冲区溢出。通常把缓冲区中的空闲部分称为窗口。TCP采用可
10、变滑动窗口协议,并且当交付的数据不够填满一个缓冲区时,流服务提供“PUSH”机制,应用程序可以用其进行强迫传送。,4.2 传输控制协议TCP,4.2.2 TCP端口号分配,TCP模块以IP模块为传输基础,可以面向多种应用程序提供传输服务。为了能够区分出对应的应用程序,引入了TCP端口的概念(与UDP类似)。TCP端口号采用了动态和静态相结合的分配方法,对于一些常用的应用服务使用固定的端口号;对于其他的应用服务,尤其是用户自行开发的应用服务,端口号采用动态分配方法,由用户指定其分配。表4-2列出了常见的TCP服务端口号。,4.2 传输控制协议TCP,表4-2 常见TCP服务及端口号,4.2 传输
11、控制协议TCP,4.2.3 TCP报文段格式,图4-3 TCP数据在IP数据报中的封装,4.2 传输控制协议TCP,图4-4 TCP报文段的格式,4.2 传输控制协议TCP,(1)源端口号和目的端口号。源端口号和目的端口号用于表示发送端和接收端的端口号。这两个值加上IP首部中的源IP地址和目的IP地址可以确定一条唯一的TCP连接。,(2)序号。序号字段用于标识从TCP发送端向TCP接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节的序号。例如,当前报文段的第一个数据字节的序号为201,数据长度为100字节,则当前报文段的序号字段的值为201,下一报文段的序号值为301。序号字段占4个
12、字节,当序号到达232-1后又从0开始。,(3)确认序号。确认序号包含发送确认的一端所期望收到的下一个序号。既然每个传输的字节都被计数,确认序号应当是上次已成功收到数据字节序号加1。例如,接收端已成功接收发送端发送的序号为501,数据长度为200的报文段。那么,接收端期望收到的下一个数据序号是701,则该确认序号为701。TCP为应用层提供全双工服务。这意味着数据能在两个方向上独立地进行传输。因此,TCP连接的每一端必须保持每个方向上的传输数据序号。,4.2 传输控制协议TCP,(4)数据偏移。数据偏移字段指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。需要这个字段是因为选项字段的
13、长度是可变的。这个字段占4位,以4字节为单位,因此TCP数据偏移的最大值是60字节,也就是说TCP首部的最大长度为60字节。,(5)保留。保留字段占6位,保留为今后使用,目前设置为0。,(6)标志位。在TCP首部中有6个标志位,具体含义如下:,URG(urgent)为紧急数据标志。当URG=1时,表示紧急指针字段的值有效。此时,该报文段中有紧急数据,应尽快传送,而不是按照原来的顺序传送。这时需要与首部中的紧急指针字段配合使用。ACK(acknowledgement)为确认标志位。当ACK=1时,表示报文段中的确认序号有效;当ACK=0时,确认序号无效。TCP规定:在连接建立后,所有传送的报文段
14、的ACK字段必须置1。,4.2 传输控制协议TCP,PSH(push)为推送标志位。当PSH=1时,表示发送端希望立即得到接收端的响应。此时,发送方的TCP协议软件马上发送该数据包,接收方收到后也应尽快把这个报文段交给应用层。RST(reset)为复位标志位,用来复位一条连接。如果TCP收到的数据不属于该主机上的任何一个连接,则将RST字段置1,向发送端发送一个复位数据包,释放当前连接。RST字段置1还可用来拒绝一个非法的报文段或拒绝打开一个连接。SYN(synchronous)为同步标志位,在建立连接时用来同步序号。如果SYN=1,而ACK=0,表示这是一个连接请求报文段;如果SYN=1,而
15、ACK=1,则表示这是一个连接接受报文段。具体的连接过程将在4.2.4节中进行讲解。FIN(finish)为终止标志位,用来释放连接。当FIN=1时,表示发送端端完成发送任务,希望释放连接。,4.2 传输控制协议TCP,(7)窗口。窗口表明该报文段的发送端当前能够接收的从确认序号开始的最大数据长度,该值主要向对方声明本地接收缓冲区的使用情况。窗口大小是一个16位字段,因而窗口字段最大65 535字节。,(8)校验和。校验和覆盖了整个TCP报文段:TCP首部和TCP数据。这是一个强制性的字段,一定是由发送端计算和存储,并由接收端进行验证。,(9)紧急指针。只有当URG=1时,该字段才有效。紧急指
16、针是一个正的偏移量,指出本报文段中紧急数据的字节数。也就是说,紧急指针字段和序号字段中的值相加表示紧急数据最后一个字节的序号。值得注意的是,即使窗口字段为零,也可以发送紧急数据。,4.2 传输控制协议TCP,(10)选项。选项字段长度可变,最长可达40字节。TCP规定了最长报文大小,又称为MSS(Maximum Segment Size)。每个连接方通常都在通信的第一个报文段中指明这个选项,它指明本端所能接收的报文段的最大长度。,从图4-4中可以注意到TCP报文段中的数据部分是可选的,在一个连接建立和释放的过程(具体内容在4.2.4节中进行讲解)中,双方交换的报文段都是仅有TCP首部,没有数据
17、部分的。如果一方没有数据要发送,也可以使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。,4.2 传输控制协议TCP,4.2.4 TCP传输连接建立和释放,TCP是一个面向连接的协议,传输层连接的建立和释放是每一次面向连接的通信中所必不可少的过程。TCP的连接和建立都采用客户/服务器方式,主动发起连接建立的应用进程称为客户(client),而被动等待连接建立的进程称为服务器(server)。下面具体来看一下TCP连接的建立与释放过程。,4.2 传输控制协议TCP,建立TCP连接,假设客户机上的一个进程想与服务器上另一进程通信,两者要通过“三次握手(t
18、hree-way handshake)”建立TCP连接,如图4-5所示。,图4-5 三次握手建立TCP连接,(1)第1次握手:客户发送连接请求。,( 2)第2次握手:服务器同意连接确认。,是利用多条网络连接来支持一条运输连接上的数据传输,目的是使低吞吐量、低速率和高传输延迟的网络可以支持用户高速传输数据的要求。,是将多条运输连接上的数据汇集到一条网络连接上传输,使具有高吞吐量、高速率和低传输延迟且高费用的网络可以支持用户的低传输成本的要求。,(3)第3次握手:客户确认连接。,是将一个长的运输服务数据单元分成若干个运输协议数据单元进行传输,使传输长度有限的网络可以支持用户的无限长度数据的传输。,
19、4.2 传输控制协议TCP,4.2 传输控制协议TCP,(1)第1次握手:客户发送连接请求。,客户发送一个特殊的TCP报文段给服务器,这个报文段不包含应用数据,而将段首的SYN标志位置1,该报文段也因此被称为SYN报文段。同时,客户还为这个连接设置初始序列号seq=client_isn。该段被封装成IP数据报发送给服务器。,(2)第2次握手:服务器同意连接确认。,一旦包含SYN段的IP数据报到达服务器(假设正常到达),服务器从IP数据报中提取出SYN段,并初始化TCP缓存及连接变量,同时发送给客户一个同意连接的确认信息。这个确认报文段也不包含应用数据,却在段首包含三条重要的信息:SYN=1,A
20、CK=1,TCP段首的确认号ack=client_isn+1,服务器选择连接的初始序列号seq=server_isn。这个报文段通常被称为SYN&ACK报文段。,4.2 传输控制协议TCP,(3)第3次握手:客户确认连接。,在接收到服务器同意连接的确认后,客户同样要设置连接的缓存和变量,并再向服务器发送一个确认(即对服务器SYN&ACK报文段的确认)。这时ACK=1,SYN=0,表示连接已经建立。,三次握手过程结束后,客户和服务器就可以相互发送数据了。,4.2 传输控制协议TCP,释放TCP连接,客户和服务器之间数据发送完成后,需要释放连接。建立一个连接需要三次握手,而释放一个连接则需要经过四
21、次握手。这是由TCP的半关闭造成。TCP连接是全双工通信的(数据在两个方向上能同时传输),因而每个方向必须单独进行关闭。也就是说,当任意一方完成数据发送任务后都可以发送一个FIN报文段来释放这个方向的连接;另一端收到FIN报文段后,通知应用层另一端已经终止了该方向的数据传输,也就是对FIN报文段进行确认。,图4-6 四次握手释放TCP连接,通常情况下都是客户端主动释放连接,因此以客户端主动关闭一个TCP连接为例讲解释放TCP连接的过程,如图4-6所示。,4.2 传输控制协议TCP,(1)第1次握手:客户请求关闭连接。,客户向服务器发送一个FIN=1的TCP报文段,并设置初始序列号seq=cli
22、ent_isn。该报文段封装成IP数据报传送给服务器。,(2)第2次握手:服务器确认客户请求。,服务器收到上述TCP报文段后,发送一个ACK报文段对这个报文进行确认。ACK报文段中,ACK=1,seq=server_isn,ack=client_isn+1。这时的TCP连接处于半关闭状态,即客户机无法向服务器发送数据,但可以接收服务器发来的数据。客户收到服务器的确认报文段后,进入终止等待状态,等待服务器发出的连接释放报文段。,4.2 传输控制协议TCP,(3)第3次握手:服务器请求关闭连接。,若服务器中没有需要发送给客户的数据了,则发送自己的FIN=1的连接释放报文段给客户端。该报文段中,AC
23、K=1,seq=server_isn,ack=client_isn+1。,(4)第4次握手:客户确认服务器请求。,客户收到服务器的连接释放报文段后,对服务器的FIN报文段进行确认。在确认报文段中把ACK位置1,确认号ack=server_isn+1,序号seq=client_isn+1。然后进入时间等待状态。经过时间等待计时器设置的时间2MSL后,客户才真正释放连接。,4.2 传输控制协议TCP,提 示,4.3 网际互连协议IP,网际互连协议IP是一个网络层协议,它包含寻址信息和控制信息,可使数据包在网络中路由。IP协议是TCP/IP协议族中最为核心的协议,与TCP协议结合组成整个因特网协议的
24、核心协议。与IP协议配套使用的还有4个子协议:,地址解析协议ARP(Address Resolution Protocol,ARP);逆地址解析协议RARP(Reverse Address Resolution Protocol,RARP);因特网控制报文协议ICMP(Internet Control Message Protocol,ICMP);因特网组管理协议(Internet Group Management Protocol,IGMP)。,4.3.1 IPv4地址,当网络中的两台主机要进行通信时,必须知道通信双方各自的地址,这就是我们所理解的Internet地址,即IP地址。IP地址实
25、际上是一种标识符,TCP/IP协议通过IP地址来识别网络中不同的主机。,4.3 网际互连协议IP,IP地址的表示,根据TCP/IP协议规定,IP地址由32位二进制数所组成。例如,互联网上一台主机的IP地址为11000001001000001101100000001001。为了记忆方便,可以将IP地址的32位二进制数进行分段,每段8位,共4段,然后将每段8位二进制数转换为相应的十进制数,中间用“”号间隔,这种表达方式称之为“点分十进制”。也就是说,上述的IP地址可以表示成193.32.216.9,如图4-7所示。,图4-7 点分十进制表示IP地址,从概率学的角度看,32位二进制数能表达232种不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络技术基础 盛立军 计算机网络技术 基础 ppt 课件 第四
链接地址:https://www.31ppt.com/p-1427866.html