1、第第7 7章章TCPIPTCPIP协议基础协议基础摘要:主要介绍了摘要:主要介绍了TCP/IP协议体系的基本概念,协议体系的基本概念,TCP/IP协协议模型的各个层次包含的协议的基本概念和功能议模型的各个层次包含的协议的基本概念和功能TCP/IP协议是协议是Internet发展的基础。学习本章的内容将会对发展的基础。学习本章的内容将会对Internet的组织结构、工作过程以及数据传输的理解有很大的组织结构、工作过程以及数据传输的理解有很大帮助。本章介绍帮助。本章介绍TCP/IP协议的基本概念,协议的基本概念,TCP/IP协议模型协议模型的各个层次所包含的协议的概念及其功能。的各个层次所包含的协
2、议的概念及其功能。7.1 TCP/IP7.1 TCP/IP协议概述协议概述 TCP/IP TCP/IP协议是协议是InternetInternet上使用最为广泛的通信协议。上使用最为广泛的通信协议。所谓所谓TCP/IPTCP/IP协议,实际上是一个协议簇(组),是一组协协议,实际上是一个协议簇(组),是一组协议,其中议,其中TCPTCP协议(协议(Transmission Control ProtocolTransmission Control Protocol)和)和IPIP协议(协议(Internet ProtocolInternet Protocol)是其中两个最重要的协议。)是其中两个
3、最重要的协议。IPIP协议称为网际协议,用来给各种不同的局域网和通信子协议称为网际协议,用来给各种不同的局域网和通信子网提供一个统一的互联平台。网提供一个统一的互联平台。TCPTCP协议称为传输控制协议,协议称为传输控制协议,用来为应用程序提供端到端的通信和控制功能。用来为应用程序提供端到端的通信和控制功能。 7.2 7.2 网络访问层网络访问层 网络访问层用于实现主机与传输媒介的物理接网络访问层用于实现主机与传输媒介的物理接口,为网络互联层发送和接收口,为网络互联层发送和接收IPIP数据报。对应到数据报。对应到ISO/OSIISO/OSI七层模型中的第一层(物理层)和第二层七层模型中的第一层
4、(物理层)和第二层(数据链路层)。(数据链路层)。 TCP/IP TCP/IP支持多种网络访问层协支持多种网络访问层协议,常用的有议,常用的有EthernetEthernet、Token Bus Token Bus 、Token RingToken Ring等。这些协议和标准都遵循电机电子工程师协会等。这些协议和标准都遵循电机电子工程师协会(IEEEIEEE)系统标准。具体来说,都遵循)系统标准。具体来说,都遵循IEEE802IEEE802标标准。准。 7.3 7.3 互联网络层互联网络层 TCP/IP TCP/IP协议体系的互联网络层包含的协议主要有协议体系的互联网络层包含的协议主要有Int
5、ernet Protocol Internet Protocol (IPIP,网络协议),网络协议),Internet Internet Control Message Protocol Control Message Protocol (ICMPICMP,网络控制信息协,网络控制信息协议),议),Address Resulution ProtocolAddress Resulution Protocol(ARPARP,地址解析,地址解析协议)和协议)和Reverse Address Resolution PortocolReverse Address Resolution Portocol(
6、RARPRARP,反向地址解析协议)。这一节我们将简单介绍,反向地址解析协议)。这一节我们将简单介绍这些协议。这些协议。 7.3.1 IP7.3.1 IP协议的主要功能协议的主要功能 IP IP协议实现两个基本功能:分段和寻址。协议实现两个基本功能:分段和寻址。IPIP协议的协议的分段(或重组)功能是靠分段(或重组)功能是靠IPIP数据包头部的一个字段来实数据包头部的一个字段来实现的。网络只能传输一定长度的数据包,而当待传输的现的。网络只能传输一定长度的数据包,而当待传输的数据报超出这一限制时,就需要利用数据报超出这一限制时,就需要利用IPIP协议的分段功能协议的分段功能将长的数据报分解为若干
7、较小的数据包。寻址功能同样将长的数据报分解为若干较小的数据包。寻址功能同样也在也在IPIP数据包头部实现。数据包头部中包含了源端地址、数据包头部实现。数据包头部中包含了源端地址、目的端地址以及一些其它信息字段,可用于对目的端地址以及一些其它信息字段,可用于对IPIP数据包数据包进行寻址。进行寻址。 7.3.2 IP7.3.2 IP协议的特性协议的特性 IP IP协议有两个很重要的特性:非连接性(无连接性)协议有两个很重要的特性:非连接性(无连接性)和不可靠性。非连接性是指经过和不可靠性。非连接性是指经过IPIP协议处理过的数据包协议处理过的数据包其传输是相互独立的,每个包都可以按不同的路径传输
8、其传输是相互独立的,每个包都可以按不同的路径传输到目的地,也就是说每个包传输的路由可以完全不同,到目的地,也就是说每个包传输的路由可以完全不同,因而其包抵达的顺序可以不一致,先传送的包不一定先因而其包抵达的顺序可以不一致,先传送的包不一定先到达目的地。到达目的地。 不可靠性是指不可靠性是指IPIP协议没有提供对数据流在传输时的协议没有提供对数据流在传输时的可靠性控制。它是一种不可靠的可靠性控制。它是一种不可靠的“尽力传送尽力传送”的数据报的数据报类型协议。它没有重传机制,对底层的子网也没有提供类型协议。它没有重传机制,对底层的子网也没有提供任何纠错功能,用户数据报可能发生丢失、重复甚至失任何纠
9、错功能,用户数据报可能发生丢失、重复甚至失序到达。序到达。 7.3.3 IP7.3.3 IP协议的包格式协议的包格式 IPIP协议的包格式协议的包格式 7.3.4 IP7.3.4 IP地址地址 IP IP地址是一组地址是一组3232位的二进制数字,由四个字节构成,代位的二进制数字,由四个字节构成,代表了网络和主机的地址。表了网络和主机的地址。IPIP地址的每个字节以点分开地址的每个字节以点分开 7.3.5 IP7.3.5 IP地址的分类地址的分类 IP IP地址根据网络规模的不同可以分成三个等级(或者三地址根据网络规模的不同可以分成三个等级(或者三类)。分别是类)。分别是A A类地址、类地址、
10、B B类地址和类地址和C C类地址。各类地址的组成类地址。各类地址的组成结构如图所示结构如图所示 A A类地址类地址 前前8 8位表示网络地址,取值由位表示网络地址,取值由NICNIC决定,第一决定,第一位固定为位固定为0 0,剩余,剩余7 7为可表示为可表示27 = 12827 = 128个个A A类网络。类网络。A A类地址一般分配给政府部门、大型网络或大型类地址一般分配给政府部门、大型网络或大型机构使用(如机构使用(如IBMIBM公司、公司、DECDEC公司等),目前已经公司等),目前已经分配完了。分配完了。A A类地址的后类地址的后2424位指主机的地址。位指主机的地址。2424位的主
11、机地址共有位的主机地址共有224=16777216224=16777216个主机地址。个主机地址。 B B类地址类地址 B B类地址的前类地址的前1616位表示网络地址,由位表示网络地址,由NICNIC决定,决定,其中前其中前2 2位固定为位固定为1010。所以可以表示。所以可以表示214=16384214=16384个个B B类网络。后类网络。后1616位表示机器地址,共有位表示机器地址,共有216=65536216=65536个个主机地址。主机地址。B B类地址一般分配给中型网络或中型机类地址一般分配给中型网络或中型机构使用构使用 C C类地址类地址 C C类地址的前类地址的前2424位组
12、成网络地址,由位组成网络地址,由NICNIC决定,其中前决定,其中前2 2位位为为1111,剩余,剩余2222位,所以应该有位,所以应该有222=4194304222=4194304个个C C类网络。但是在类网络。但是在C C类地址的前类地址的前4 4位中,位中,11101110保留给组播(保留给组播(Multicase, 224-Multicase, 224-239239),1111,1111保留给实验用(保留给实验用(240240,255255),所以真正可用的),所以真正可用的C C类类网络地址数为应有的网络地址数网络地址数为应有的网络地址数 保留的地址数,即保留的地址数,即222-22
13、2-221 = 2097152221 = 2097152个网络地址。个网络地址。C C类地址的后类地址的后8 8为是主机地址。应为是主机地址。应有有28=25628=256个主机地址。但是需要扣除网络地址(个主机地址。但是需要扣除网络地址(1 1个)和广播个)和广播地址(地址(1 1个),所以真正可用的个),所以真正可用的C C类网络的主机地址,最多可以类网络的主机地址,最多可以有有254254个个 根据分配的网络地址前根据分配的网络地址前8 8位位快速判定网络的类型快速判定网络的类型 前8位值类型说明0 - 127A类IP地址开头是0 127,就是A类网络地址128 - 191B类IP地址开
14、头是128 191,就是B类网络地址192 - 223C类IP地址开头是192 223,就是C类网络地址224 239D类保留给Multicast(组播)使用240 - 255E类保留给实验用7.3.6 7.3.6 子网络子网络 当一个网络由若干个小网络组成,我们称这些小网络为当一个网络由若干个小网络组成,我们称这些小网络为子网络。若一个公司的网络是由若干个部门的子网络组成,子网络。若一个公司的网络是由若干个部门的子网络组成,是否需要为每个子网络申请一个网络地址呢?当这些子网不是否需要为每个子网络申请一个网络地址呢?当这些子网不大时,可以从原先大时,可以从原先IPIP地址中的主机地址部分,拿出
15、部分比特地址中的主机地址部分,拿出部分比特作为子网地址,利用作为子网地址,利用IPIP地址中的子网地址部分区分这些子网,地址中的子网地址部分区分这些子网,而不用为每个子网申请一个而不用为每个子网申请一个IPIP地址。地址。 1. 1. 子网络地址子网络地址单一网络下的组成形式单一网络下的组成形式 IPIP地址地址 = = 网络地址网络地址 + + 主机地址主机地址切割成若干个子网时的形式切割成若干个子网时的形式 IPIP地址地址 = = 网络地址网络地址 + + 子网地址子网地址 + + 主机地址主机地址原先的主机地址原先的主机地址 = = 子网地址子网地址 + + 主机地址主机地址子网络地址
16、子网络地址例如:例如:168.95.X.X168.95.X.X的的B B 段网络地址段网络地址IPIP地址(地址(3232位)位)= = 网络地址(前网络地址(前1616位)位) + + 主机地址(后主机地址(后1616位)位)168.95.X. X = 68. 95 + X.X168.95.X. X = 68. 95 + X.X主机共有主机共有216= 65536216= 65536个地址个地址 。当切割成两个子网时:当切割成两个子网时:IPIP地址(地址(3232位)位) = = 网络地址网络地址 + + 子网地址子网地址 + + 主机地址主机地址 168.95.X. X = 168.95
17、 + 1168.95.X. X = 168.95 + 1位位 + 15 + 15位位由于要切割成两个子网,于是将原来的后由于要切割成两个子网,于是将原来的后1616位中的最高位拿来作为子网地址,这样就可以位中的最高位拿来作为子网地址,这样就可以将将B B类网络切割成类网络切割成2 2个子网络:个子网络:16816895950XXXXXXX0XXXXXXXXXXXXXXXXXXXXX16816895951XXXXXXX1XXXXXXXXXXXXXXXXXXXXX各个子网拥有各个子网拥有215 = 32768215 = 32768个主机地址。个主机地址。由此类推,若是将由此类推,若是将B B类网络
18、切割成类网络切割成4 4个子网络,则须将原来的后个子网络,则须将原来的后1616位中的最高两位拿来作为位中的最高两位拿来作为子网络地址,切割成的四个子网分别是:子网络地址,切割成的四个子网分别是:168168959500XXXXXX00XXXXXXXXXXXXXXXXXXXXXX168168959501XXXXXX01XXXXXXXXXXXXXXXXXXXXXX168168959510XXXXXX10XXXXXXXXXXXXXXXXXXXXXX168168959511XXXXXX11XXXXXXXXXXXXXXXXXXXXXX各个子网拥有各个子网拥有214 = 16384214 = 16384
19、个主机地址。个主机地址。2. 2. 子网掩码子网掩码 使用子网掩码可以判定使用子网掩码可以判定IPIP地址是否属于某一子网。例地址是否属于某一子网。例如局域网中的一个主机在发送如局域网中的一个主机在发送IPIP包时,包头中携带有目的包时,包头中携带有目的IPIP地址,通过子网掩码,就可以判定包是发送到本网内的地址,通过子网掩码,就可以判定包是发送到本网内的某个主机,还是发送到网外的主机,从而选择不同的处理某个主机,还是发送到网外的主机,从而选择不同的处理. .。子网掩码的形式为:网络及子网地址部分置子网掩码的形式为:网络及子网地址部分置1 1,主机地址置,主机地址置0 0形成的形成的IPIP地
20、址。地址。如一个如一个B B类网络的子网掩码为:类网络的子网掩码为:2552552552550 0 0 0一个一个C C类网络的子网掩码为:类网络的子网掩码为:2552552552552552550 0子网掩码举例子网掩码举例例例1 1:将一个:将一个C C类网络划分为类网络划分为1616个子网,求子网掩码。个子网,求子网掩码。解:要将一个解:要将一个C C类网络划分为类网络划分为1616个子网,必须从个子网,必须从8 8位主位主机地址中拿出前机地址中拿出前4 4位作为子网地址,位作为子网地址,4 4位二进制位可以位二进制位可以有有1616种组合,正好可以表示种组合,正好可以表示1616个子网
21、地址。所以子网个子网地址。所以子网掩码为:掩码为:255255255255255255240240网络号码网络号码 网络号码用于标识一个网络或子网,形式上,网络号网络号码用于标识一个网络或子网,形式上,网络号码一般是码一般是IPIP地址中的网络地址和子网地址部分不变,而主地址中的网络地址和子网地址部分不变,而主机地址部分为机地址部分为0 0的的IPIP地址。如一个地址。如一个B B类网络的网络号码可以类网络的网络号码可以是:是:16816895950 00 0网络地址部分为网络地址部分为1681689595,主机地址部分全部置,主机地址部分全部置0 0。一个一个C C类网络的网络号码可以是:类
22、网络的网络号码可以是:202202959547470 0网络地址部分是网络地址部分是20220295954747,主机地址部分为,主机地址部分为0 0。 网络中网络中IPIP地址、网络号码和地址、网络号码和子网掩码的关系子网掩码的关系 IPIP地址地址 AND AND 子网掩码子网掩码 = = 网络号码网络号码 网络号码举例网络号码举例例例2 2:设子网掩码为:设子网掩码为255.255.255.240255.255.255.240,判断计算机甲(,判断计算机甲(IPIP地址:地址:203.66.47.50203.66.47.50)和计)和计算机乙(算机乙(IPIP地址:地址:203.66.4
23、7.49203.66.47.49)是否在同一子网内。)是否在同一子网内。解:将解:将IPIP地址与子网掩码相与,看网络号码是否相同。地址与子网掩码相与,看网络号码是否相同。计算机甲计算机甲 11001011 01000100 00101111 00110010 203 11001011 01000100 00101111 00110010 203666647475050子网掩码子网掩码 11111111 11111111 11111111 11110000 255 11111111 11111111 11111111 11110000 255255255255255240240ANDAND结果
24、结果 11001010 01000100 00101111 00110000 203 11001010 01000100 00101111 00110000 203666647474848计算机乙计算机乙 11001011 01000100 00101111 00110001 203 11001011 01000100 00101111 00110001 203666647474949子网掩码子网掩码 11111111 11111111 11111111 11110000 255 11111111 11111111 11111111 11110000 255255255255255240240
25、ANDAND结果结果 11001010 01000100 00101111 00110000 203 11001010 01000100 00101111 00110000 203666647474848 两个主机的两个主机的IPIP地址与子网掩码与的结果都等于地址与子网掩码与的结果都等于203203666647474848,也就是网络号,也就是网络号码。码。 由此可见由此可见, ,计算机甲和计算机乙所处网络的网络号码相同,计算机甲和计算机乙计算机甲和计算机乙所处网络的网络号码相同,计算机甲和计算机乙在同一个子网中。在同一个子网中。3. 3. 子网划分子网划分子网络个数子网掩码网络号码路由器地
26、址广播地址可用的IP地数1255.255.0.0XX00XX01XX255255655342255.255.128.0XX00XX01XX12725532766255.255.128.0XX1280XX1281XX25525532766子网划分子网划分子网络个数子网掩码网络号码路由器地址广播地址可用的IP地数1255.255.255.0XXX0XXX1XXX2552542255.255.255.128XXX0XXX1XXX127126255.255.255.128XXX128XXX129XXX2551264255.255.255.192XXX0XXX1XXX6362255.255.255.19
27、2XXX64XXX65XXX12762255.255.255.192XXX128XXX129XXX19162255.255.255.192XXX192XXX193XXX255627.3.8 7.3.8 网络控制信息协议(网络控制信息协议(ICMPICMP) ICMP ICMP是是“Internet Control Message Protocol”“Internet Control Message Protocol”(InternetInternet控制信息协议)的缩写。它是控制信息协议)的缩写。它是TCP/IPTCP/IP协议协议族的一个子协议,用于在族的一个子协议,用于在IPIP主机、路由
28、器之间传递控主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重并不传输用户数据,但是对于用户数据的传递起着重要的作用。要的作用。 ICMPICMP包与包与IPIP包的关系包的关系 可利用可利用ICMPICMP协议来提供错误信息给来源主机,此信息协议来提供错误信息给来源主机,此信息也以包的形式来传送,称为也以包的形式来传送,称为ICMPICMP包。包。ICMPICMP协议的使用是建协议的使用是建立
29、在立在IPIP协议基础上的,换言之,协议基础上的,换言之,ICMPICMP协议无法单独运行,协议无法单独运行,我们甚至可以将我们甚至可以将ICMPICMP当作时当作时IPIP协议的一部分。协议的一部分。ICMPICMP的包是的包是嵌在嵌在IPIP包中来传送的,包中来传送的,IPIP包的数据区部分是由整个包的数据区部分是由整个ICMPICMP包包组成的。如图所示组成的。如图所示 7.3.9 地址解析协议(ARP协议) ARP ARP协议是协议是“Address Resolution Protocol”“Address Resolution Protocol”(地(地址解析协议)的缩写址解析协议)
30、的缩写 。所谓。所谓“地址解析地址解析”就是主机在发就是主机在发送帧前将目标送帧前将目标IPIP地址转换成目标地址转换成目标MACMAC地址的过程。地址的过程。ARPARP协协议的基本功能就是根据目标设备的议的基本功能就是根据目标设备的IPIP地址,查询目标设地址,查询目标设备的备的MACMAC地址,以保证通信的顺利进行。地址,以保证通信的顺利进行。 7.3.10 7.3.10 反向地址解析协议(反向地址解析协议(RARPRARP协议)协议) Reverse Address Resolution Protocol, Reverse Address Resolution Protocol,简称简
31、称RARPRARP协协议。议。RARPRARP协议和前面所提到的协议和前面所提到的ARPARP协议,其功能刚好相反,协议,其功能刚好相反,将将3232位的位的IPIP地址转换成物理的硬件地址,这是地址转换成物理的硬件地址,这是ARPARP协议的主协议的主要功能,而要功能,而RARPRARP协议则是,将网络的物理地址转换成协议则是,将网络的物理地址转换成3232位的位的网络网络IPIP地址。地址。 7.3.11 DHCP7.3.11 DHCP协议协议 DHCP DHCP的全称是动态主机配置协议(的全称是动态主机配置协议(Dynamic Host Dynamic Host Configuratio
32、n ProtocolConfiguration Protocol),由),由IETFIETF(Internet Internet 网络工网络工程师任务小组)设计,详尽的协议内容在程师任务小组)设计,详尽的协议内容在RFCRFC文档文档(rfc2131rfc2131和和rfc1541rfc1541)里。)里。DHCPDHCP是是Windows NTWindows NT和和Windows Windows 2000 Server2000 Server提供的动态分配主机提供的动态分配主机IPIP地址的服务。地址的服务。DHCPDHCP服服务的目的是为了减轻对务的目的是为了减轻对TCP/IPTCP/IP
33、网络的规划、管理和维护网络的规划、管理和维护的负担,解决的负担,解决IPIP地址缺乏问题。地址缺乏问题。DHCPDHCP服务器可以把服务器可以把TCP/IPTCP/IP网络设置集中起来,动态处理工作站网络设置集中起来,动态处理工作站IPIP地址的配地址的配置。置。DHCPDHCP提供了自动在提供了自动在TCP/IPTCP/IP网络上安全地分配和租用网络上安全地分配和租用IPIP地址的机制,实现地址的机制,实现IPIP地址的集中式管理,基本上不需地址的集中式管理,基本上不需要网络管理人员的人为干预。而且,要网络管理人员的人为干预。而且,DHCPDHCP本身被设计成本身被设计成BOOTPBOOTP
34、(自举协议)的扩展,支持需要网络配置信息的无(自举协议)的扩展,支持需要网络配置信息的无盘工作站,对需要固定盘工作站,对需要固定IPIP的系统也提供了相应支持。的系统也提供了相应支持。 7.3.12 Ipv6 7.3.12 Ipv6 由于网络的迅猛发展,由于网络的迅猛发展,IPv4IPv4的有限地址空间等问题成为的有限地址空间等问题成为网络发展的瓶颈。网络发展的瓶颈。19901990年因特网工程任务组年因特网工程任务组IETFIETF开始了开始了IPv6IPv6的研究。经过数年努力,制定了增强型简单因特网协议,并的研究。经过数年努力,制定了增强型简单因特网协议,并命名为命名为IPv6IPv6。
35、 IPv6 IPv6与与IPv4IPv4并不完全兼容,但与其他协议,如并不完全兼容,但与其他协议,如ICPICP,UDPUDP,ICMPICMP完全兼容。完全兼容。IPv6IPv6把把IPv4IPv4的的3232位地址加至位地址加至128128位,共位,共1616字字节,使得源和目标地址都增加了,其地址范围为节,使得源和目标地址都增加了,其地址范围为21282128,达到,达到几百亿个地址几百亿个地址 7.4 7.4 传输层传输层 传输层的协议主要有两个协议:传输层的协议主要有两个协议:TCPTCP协议协议(Transmission Control Protocol,Transmission
36、Control Protocol,传输控制传输控制协议)和协议)和UDPUDP协议(协议(User Datagram Protocol,User Datagram Protocol,用户数据报协议)。它们都为应用层提供数据用户数据报协议)。它们都为应用层提供数据传输服务。传输服务。 7.4.1 7.4.1 传输控制协议(传输控制协议(TCPTCP协议)协议) TCP TCP协议在协议在TCP/IPTCP/IP协议族中的位置协议族中的位置 Telnet、FTPTCPUDPIP、ICMP1. TCP1. TCP协议的主要功能协议的主要功能 TCP TCP协议的主要功能,用一句话概括就是:协议的主要
37、功能,用一句话概括就是:TCPTCP协议提协议提供具有连接性的、可靠的数据流式的传输服务。供具有连接性的、可靠的数据流式的传输服务。 连接性连接性 连接性表示要传输数据的双方,必须事先沟通,在建连接性表示要传输数据的双方,必须事先沟通,在建立好连接之后,才能正式开始传输数据。两台主机之间要立好连接之后,才能正式开始传输数据。两台主机之间要想完成一次数据传输,必须经历连接建立、数据传输、以想完成一次数据传输,必须经历连接建立、数据传输、以及连接拆除三个阶段。及连接拆除三个阶段。 无连接性是指两台主机在进行信息交换之前,无须事无连接性是指两台主机在进行信息交换之前,无须事先经呼叫来建立通信连接,各
38、个分组独立地各自传送到目先经呼叫来建立通信连接,各个分组独立地各自传送到目的地。的地。连接性与非连接性的数据传输方式连接性与非连接性的数据传输方式的主要区别的主要区别 路由选择:具有连接性的传输方式,路由的选择仅仅发生路由选择:具有连接性的传输方式,路由的选择仅仅发生在连接建立的时候,在以后的传输过程中,路由不再改变;在连接建立的时候,在以后的传输过程中,路由不再改变;具有非连接性的传输方式中,每传送一个分组都要进行路由具有非连接性的传输方式中,每传送一个分组都要进行路由选择。选择。 在具有连接性的传输方式中,各分组是按顺序到达的;非在具有连接性的传输方式中,各分组是按顺序到达的;非连接性的传
39、输方式中,分组可能会失序到达,甚至丢失。连接性的传输方式中,分组可能会失序到达,甚至丢失。 具有连接性的传输方式便于实现差错控制和流量控制;非具有连接性的传输方式便于实现差错控制和流量控制;非连接性的传输方式一般不实行流量控制和差错控制。连接性的传输方式一般不实行流量控制和差错控制。具有连接性的传输方式一般应用于较重要的数据传输;非具有连接性的传输方式一般应用于较重要的数据传输;非连接性的传输方式一般应用于较不重要的数据传输。连接性的传输方式一般应用于较不重要的数据传输。 可靠性可靠性TCPTCP协议用来在两个端用户之间提供可靠的数据协议用来在两个端用户之间提供可靠的数据传输服务。其可靠性是由
40、传输服务。其可靠性是由TCPTCP协议提供的确认重协议提供的确认重传机制实现的。传机制实现的。 TCPTCP协议的可靠性控制协议的可靠性控制 数据流量控制数据流量控制 我们在讨论我们在讨论TCPTCP协议在保证数据传输的可靠性时,协议在保证数据传输的可靠性时,发送端每次都要等到收到回应的确认包后,才传送下一发送端每次都要等到收到回应的确认包后,才传送下一个数据包。由于发送端用于等待确认包的时间是闲置的个数据包。由于发送端用于等待确认包的时间是闲置的时间,从而造成整个数据传输效率的低下,造成带宽的时间,从而造成整个数据传输效率的低下,造成带宽的浪费。因此,在浪费。因此,在TCPTCP协议中,使用
41、了一种叫滑动窗的技协议中,使用了一种叫滑动窗的技术,来解决这一问题。术,来解决这一问题。 用滑动窗进行数据流量控制用滑动窗进行数据流量控制 图中,假定总共要传送图中,假定总共要传送1010个包。个包。图图A A中,窗口中有中,窗口中有4 4个包,表示已送出的个包,表示已送出的包,窗宽包,窗宽W=4W=4。图图B B中,当传送端收到确认包中,当传送端收到确认包1 1时,窗口时,窗口向右移动一格,并送处包向右移动一格,并送处包5 5。图图C C中,当传送端收到确认包中,当传送端收到确认包2 2、3 3时,时,窗口向右移窗口向右移2 2格,并送出包格,并送出包6 6、7 7。简单说,在窗口右方的包,
42、表示要准备简单说,在窗口右方的包,表示要准备送出去的包,而位于窗口里面的包,表送出去的包,而位于窗口里面的包,表示已经送出的包,但传送端尚未收到相示已经送出的包,但传送端尚未收到相应的确认包,而窗口左边的包,表示已应的确认包,而窗口左边的包,表示已经送出去而且也已经收到确认的包。窗经送出去而且也已经收到确认的包。窗口在滑动时,其宽度不能赶上规定的窗口在滑动时,其宽度不能赶上规定的窗宽。宽。 1. TCP1. TCP协议的通信端口协议的通信端口 在在TCPTCP协议中,端口用一个长协议中,端口用一个长2 2个字节的整数来表示,称为端口号。个字节的整数来表示,称为端口号。不同的端口号表示不同的应用
43、程序(或称为高层用户)。不同的端口号表示不同的应用程序(或称为高层用户)。 端口号和端口号和IPIP地址连接在一起构成一个套接字(地址连接在一起构成一个套接字(SOCKETSOCKET),套接字分),套接字分为发送套接字和接收套接字。为发送套接字和接收套接字。发送套接字发送套接字 = = 源源IPIP地址地址 + + 源端口号源端口号 接收套接字接收套接字 = = 目的目的IPIP地址地址 + + 目的端口号目的端口号 一对套接字唯一地确定了一个一对套接字唯一地确定了一个TCPTCP连接的两个端点。也就是说:连接的两个端点。也就是说:TCPTCP连接的端点是套接字而不是连接的端点是套接字而不是
44、IPIP地址。地址。 在在TCPTCP协议中,有些端口号已经保留给特定的应用程序来使用(大多协议中,有些端口号已经保留给特定的应用程序来使用(大多为为256256号之前),这类端口号,我们称为公共端口,其它的号码,我们称号之前),这类端口号,我们称为公共端口,其它的号码,我们称为用户端口。因特网标准工作组规定,数值在为用户端口。因特网标准工作组规定,数值在10241024以上的端口号可以由以上的端口号可以由用户自由使用。用户自由使用。 3. TCP3. TCP包(包(TCPTCP数据报)的格式数据报)的格式 我们把在数据链路层上传输的数据单元称为帧,把在网络我们把在数据链路层上传输的数据单元称
45、为帧,把在网络层上传输的数据单元称为包(层上传输的数据单元称为包(PacketPacket)。)。TCPTCP包是包是IPIP包的一部包的一部分,而若以以太网为例,分,而若以以太网为例,IPIP包又是以太网帧的一部分。换句话包又是以太网帧的一部分。换句话说,说,IPIP包封装了包封装了TCPTCP包,而以太网的以太包又封装了包,而以太网的以太包又封装了IPIP包。封包。封装过程如图所示。装过程如图所示。 TCPTCP包标头格式包标头格式 7.4.2 7.4.2 用户数据报协议用户数据报协议 用户数据报协议(用户数据报协议(User Datagram ProtocolUser Datagram
46、Protocol),简称),简称UDPUDP协议,提供了不同于协议,提供了不同于TCPTCP的另一种数据传输服务方式,的另一种数据传输服务方式,它和它和TCPTCP协议都处于主机协议都处于主机- -主机层。它们之间是平行的,都主机层。它们之间是平行的,都是构建在是构建在IPIP协议之上,以协议之上,以IPIP协议为基础。协议为基础。 使用使用UDPUDP协议进行数据传输具有非连接性和不可靠性协议进行数据传输具有非连接性和不可靠性 。UDPUDP提供面向非连接的,不可靠的数据传输服务。提供面向非连接的,不可靠的数据传输服务。 UDP UDP没有提供流量控制,因而省去了在流量控制方面的没有提供流量
47、控制,因而省去了在流量控制方面的传输开销,因而传输速度快,适用于实时、大量但对数据传输开销,因而传输速度快,适用于实时、大量但对数据的正确性要求不高的数据传输。的正确性要求不高的数据传输。 1. UDP1. UDP协议的通信端口协议的通信端口 TCP TCP协议用通信端口来区分同一主机上执行的不同应协议用通信端口来区分同一主机上执行的不同应用程序。同样,用程序。同样,UDPUDP也有相同的功能,和也有相同的功能,和TCPTCP一样,一样,UDPUDP也也是用一个长是用一个长2 2个字节的整数号码来表示不同的程序。在个字节的整数号码来表示不同的程序。在TCPTCP协议中,某些端口号已保留给特定的
48、应用程序使用,同样,协议中,某些端口号已保留给特定的应用程序使用,同样,UDPUDP协议也有保留端口。这些保留端口号,我们称之为公协议也有保留端口。这些保留端口号,我们称之为公共端口,其他的号码,我们称为用户端口。共端口,其他的号码,我们称为用户端口。 UDP UDP包在以太包中的封装包在以太包中的封装 UDPUDP包格式包格式 7.5 7.5 应用层应用层 Application Layer Application Layer(应用层)对应到(应用层)对应到TCP/IPTCP/IP协议模型的协议模型的协议有很多,常用的有协议有很多,常用的有World Wide WebWorld Wide W
49、eb(WWWWWW,全球信息网),全球信息网),File Transfer ProtocolFile Transfer Protocol(FTPFTP,文件传输协议),文件传输协议),Simple Simple Mail Transfer ProtocolMail Transfer Protocol(SMTPSMTP,简易邮件传输协议),简易邮件传输协议),TelnetTelnet(远程登录),(远程登录),Domain Name SystemDomain Name System(DNSDNS,域名系,域名系统),统),Simple Network Management ProtocolSim
50、ple Network Management Protocol(SNMPSNMP,简易,简易网络管理协议)和网络管理协议)和Network File systemNetwork File system(NFSNFS,网络文件系,网络文件系统等)。这一节我们将一一简要介绍这些协议。统等)。这一节我们将一一简要介绍这些协议。 7.5.1 WWW7.5.1 WWW全球信息网与全球信息网与超文本传输协议超文本传输协议HTTPHTTP1. WWW1. WWW全球信息网全球信息网 WWW WWW全球信息网(全球信息网(World Wide WebWorld Wide Web)是目前是目前InternetI