第4章计算机网络协议Word文档格式.docx
《第4章计算机网络协议Word文档格式.docx》由会员分享,可在线阅读,更多相关《第4章计算机网络协议Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
![第4章计算机网络协议Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/9/96a8af05-76a5-4abc-b4a9-ed65d923df44/96a8af05-76a5-4abc-b4a9-ed65d923df441.gif)
TransmissionControlProtocol/InternetProtocol
1969年﹐美国政府机构试图发展出一套机制﹐用来连接各个离散的网络系统。
1983年﹐美国国防部下令用于连接长距离的网络的电话都必须适应TCP/IP。
1985年开始﹐TCP/IP网络迅速扩展至美国﹑欧洲好几百个大学﹑政府机构﹑研究实验室,每年以超过15%的速度成长。
4.5TCP/IP协议优势
TCP/IP参考模型更侧重于互联设备间的数据传送,而不是严格的功能层次划分。
TCP/IP提供了一个连接不同系统的技术,可以通过网关路由到不同网络。
TCP/IP提供了稳定、跨平台的服务器和客户端的网络架构。
TCP/IP提供了访问Internet的方法,并可以建立VPN实现远程访问。
4.6TCP/IP参考模型
OSI参考模型是一种通用的、标准的理论模型,今天市场上没有一个流行的网络协议完全遵守OSI模型,TCP/IP也不例外,TCP/IP协议族有自己的模型,又称DOD模型(Departmentofdefense)。
第1层:
网络接口层(NetworkInterface)
网络接口层对应OSI物理层和数据链路层,并实现与它们相同的功能,其中包括LAN和WAN的技术细节,这一层也称为主机到网络层(Host-to-Network)。
第2层:
互联网络层(Internet)
互联网络层的目的是运送数据包,将数据从任何在相连的网络上送到目的地,而不在乎走的是哪个路径或网络。
管理这层的特定协议称为互联网络协议(IP),最佳的路径选定和数据包交换都发生在这层。
第3层:
传输层(Transport)
传输层负责处理有关服务质量等事项,如可靠度、流量控制和错误校正。
该层可以提供不同服务质量、不同可靠性保证的传输服务,并且协议发送端和目标端的传输速度差异。
这一层也称为主机到主机层(Host-to-Host)。
第4层:
应用层(Application)
应用层用来处理高层协议、有关表达、编码和会话控制。
TCP/IP将所有应用程序相关的内容都归为一层,并保证为下层适当的将数据封装成数据包。
4.7TCP/IP体系结构
4.8网络接口层简介
IEEE802.3:
CSMA/CD访问控制方法与物理层规范
IEEE802.4:
Token-Bus访问控制方法与物理层规范
IEEE802.5:
Token-Ring访问控制方法
IEEE802.6:
城域网访问控制方法与物理层规范
FDDI:
光纤分布数据接口
ATM:
异步传输
X.25:
数据终端设备(DTE)和数据电路终接设备(DCE)之间的接口规程
SLIP:
串行线路网际协议
PPP:
点到点协议
HDLC:
高级数据链路控制
LCP:
链路控制协议
NCP:
网络控制协议
4.9互连网络层协议简介
ARP(AddressResolutionProtocol):
地址解析协议
RARP(ReverseAddressResolutionProtocol):
逆向地址解析协议
ICMP(InternetControlMessageProtocol):
Internet控制信息协议
IP(InternetProtocol):
网际协议(负责主机间数据的路由和网络上数据的存储。
同时为ICMP、TCP、UDP提供分组发送服务)。
4.10ARP与RARP
地址解析协议(AddressResolutionProtocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。
因此在IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDI网络中使用。
从IP地址到物理地址的映射有两种方式:
表格方式和非表格方式。
ARP具体说来就是将网络层地址解析为数据连接层的MAC地址。
逆向地址转换协议(RARP:
ReverseAddressResolutionProtocolRARP)允许局域网的物理机器从网关服务器的ARP表或者缓存上请求其IP地址。
RARP用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址而没有IP地址,则可以通过RARP协议,并发出广播请求,征求自己的IP地址,而RARP服务器则负责回答。
这样无IP的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统重新开始以前都有效,不用连续广播请求。
RARP广泛用于获取无盘工作站的IP地址。
4.11IP数据报
IP数据报的格式能够说明IP协议具体都有什么功能,在TCP/IP的标准中,各种数据格式常常以32比特(即4字节)为单位来描述。
下图是IP数据包的格式:
IP数据报分为报头区和数据区两部分
协议与版本:
协议域表示创建数据报数据区域的高级协议类型,指出数据区数据格式;
版本域表示该数据报对应IP协议版本号
长度:
报头有中两个表示长度的域,一个为报头长度,报头长度以32位双字为单位,指出该包头的长度,在没有选项和填充的情况下,该值为“5”,长度以8位字节为长度;
另一个为报头总长度,指示整个IP数据报的长度,其中包含头部长度和数据区长度
服务类型:
规定数据报的处理方式
报文的分片和重组控制:
IP数据报使用标识、标志和偏移三个域对分片进行控制,分片后的报文将在目的主机进行重组
生存周期:
避免出现死循环
头部校验和:
用户保证IP数据头数据的完整性
IP源地址、目的地址:
在整个数据报传输过程中,无论经过什么路由,如何分片,这两个字段一直保持不变
数据报选项:
用户控制和测试两大目的
填充:
如果使用选项时候,数据报不是32整数倍,使用填充区域补齐
4.11.1IP数据报封装、分片与重组
IP数据报在互联网上传输,可能要跨多个网络,作为一种高层网络数据,IP数据报最终也需要封装成帧进行传输。
1、MTU与分组
根据网络使用的技术不同,每种网络都规定了一个帧最多能携带的数据量,这一限制称为最大传输单元(maximumtransmissionunit)。
因此一个IP数据报长度只有小于或等于一个网络的MTU时,才能在这个网络中进行传输。
当一个数据报的储存大于将发送网络的MTU值时,路由器会将IP数据报分为若干较小的部分,称为分片,然后将每个分片独立的进行发送。
分片之后的数据也有报头区和数据区两部分构成,而且除一些分片控制域(如标志域、片偏移域)之外,分片的报头与原IP数据报的报头非常相似,分片的每片数据都可以向正常的IP数据报一样经过独立的路由选择等处理,最终到达目的主机。
2、重组
在接收到所有分片的基础上,最终目的主机对分片进行重新组装,这个过程称为IP数据报重组。
其优点:
在目的主机上进行重组减少了路由器的计算量;
路由器可以为每个分片独立选择路由。
3、分片控制
在IP数据报报头中,标识、标志和片偏移3个字段与控制分片和重组有关。
标识是源主机赋予IP数据报的标识符
标志字段用来告诉目的主机是否分片,是否最后一个分片
片偏移字段指出本片数据在初始IP数据报数据区中的位置,位置偏移量以8个字节为单位
4.11.2IP数据报选项
IP选项主要用于控制和测试两大目的
在使用选项的过程中,如果存在数据报的头部不是32整数倍的情况,需要使用填充域凑齐
IP数据报选项有选项码、长度和选项数据三部分组成
4.11.3IP记录路由选项和时间戳选项
1、源路由:
指IP数据报穿越互联网所经过的路由是由源主机指定的,它区别于由主机或路由的互联层软件自行选择路由后得出的路径。
主要用于测试某特定网络的吞吐率,也可以使数据报绕开出错路由。
源路由分为两类:
严格源路由选项(StrictSourceRoute):
规定IP数据报要经过路径上的每一个路由器,相邻路由器之间不得有中间路由器,并且所经过的路由器的顺序不可以改变。
松散源路由选项(LooseSourceRoute):
只给出IP数据报必须经过的一些“要点”,并不给出一条完备的路径,无直接连接的路由器之间路由尚需IP软件的寻址功能补充。
2、记录路由
记录路由是指:
记录下IP数据报从源主机到目的主机所经过的路由上的各种路由器的IP地址。
利用记录路由选项,可以判断IP数据报传输过程中经过的路径,通常还可以测试互联网中路由器的路由配置是否正确。
3、时间戳(TimeStamp)
记录下IP数据报经过每一个路由器时的当地时间。
记录时间戳可以使用IP数据报的时间戳选项。
时间戳中的时间采用格林尼时间标识,以千分之一秒为单位。
时间戳选项提供了IP数据报传输中的时间参数,用于分析网络吞吐率,拥塞情况、负载情况等。
4.12差错与控制报文
互联网络层使用的控制协议是互联网控制报文协议(InternetControlMessageProtocol),ICMP不仅用于传输控制报文,而且还用于传输差错报文。
ICMP报文是作为IP数据报的数据部分而传输。
ICMP报文的最终目的是目的主机上的IP软件,ICMP软件作为IP软件的一个模块而存在。
4.12.1ICMP差错控制
ICMP作为互联层的差错报文传输机制,最基本的功能是提供差错报告
ICMP差错报告都是采用路由器到源主机的模式
ICMP差错报文其特点:
1、差错报告不享受特别的优先权和可靠性,作为一般数据传输。
2、ICMP差错报告数据中除包含故障IP数据报报头,还包含故障IP数据报数据区的前64位数据。
3、ICMP差错报告是伴随着抛弃出错IP数据报而产生的。
ICMP出错报告包括目的不可到达报告、超时报告、参数出错报告等
1、不可到达报告:
如果数据报发送过程中,路由器的路由选择和转发都不成功,则发出目的地不可达报告。
2、超时报告:
当路由器的路由选择出现问题,利用生存周期字段避免IP数据报的传输就会出现循环的情况,一旦数据报到达生存周期,路由器将其抛弃。
3、参数出错报告:
ICMP差错报文是参数出错报文,报告错误的IP数据包报头和错误的IP数据报选项参数等情况。
4.12.2ICMP控制报文
互联层控制包括拥塞控制、路由控制两大类
拥塞控制
拥塞就是指路由器被大量涌入的IP数据报"
淹没"
的现象,造成拥塞的原因:
1、路由器的处理器速度太慢,不能完成IP数据报排队等日常工作。
2、路由器传入数据速率大于传出数据速率。
源抑制报文
无论何种形式的拥塞,就其实质而言,都在于没有足够的缓冲区存放大量涌入的数据报.一旦有足够的缓冲区,路由器总可以将传入的数据报存入对列,等待处理,而不至于被"
.IP软件采用源站抑制(sourcequench)技术,利用ICMP源抑报文抑制源主机发送IP数据报的速率,路由器对每个接口进行密切监视,一旦发现拥塞,立即向相应源主机发送ICMP源抑制报文,请求源主机降低发送IP数据报的速率。
通常,IP软件发送源抑制报文的方式有以下3种方式进行发送源抑制报文
1、如果路由器的某输出队列已满,那么在缓冲区空出之前,该队列将抛弃新来的数据报。
每抛弃一个数据报,路由器便向该IP数据报的源主机发送一个ICMP源抑制报文。
2、为路由器的输出队列设置一个阈值,当队列中的数据积累到一定数量,超过阈值后,如果没有新的数据报到来,路由器就向数据报的源主机发送ICMP源抑制报文。
3、更为复杂的源站抑制技术不是简单地抑制每一引起路由器拥塞的源主机,而是有选择地抑制IP数据报发送率较高的源主机。
路由控制新重定向报文
在IP互联网中,主机可以在数据传输过程中不断的从相邻的路由器获得新的路由信息。
通常,主机在启动时都具有一定的路由信息,这些信息可以保证主机将IP数据报发送出去,但经过的路径不一定是最优的。
路由器一旦检测到某IP数据报经非优先路径传输,它一方面继续将数据转发出去,另一方面向主机发送一个路由重定向ICMP报文,通知主机去往相应目的主机的最佳路径。
这样经过不断积累便能掌握越来越多的路由信息。
ICMP重定向机制的优点是保证主机拥有一个动态的、即小且优的路由表。
4.12.3ICMP请求/应答报文对
回送请求报文由源主机发出,目的主机应答,用于测试另一台主机或路由器是否可达。
回应请求/应答ICMP报文对于用于测试目的主机或路由的可达性。
由于请求/应答ICMP报文均以IP数据报形式在互联网中传输,如果请求者成功收到一个应答,则可以说明:
1、目的主机(或路由器)可以到达。
2、源主机与目的主机(或路由器)的ICMP和IP软件工作正常。
3、回应请求与应答ICMP报文,经过中间路由器的路由选择功能正常。
时间戳请求与应答
设计时间戳请求/应答ICMP报文是同步互联网上主机时钟的一种努力,尽管这种时钟同步技术的能力是有限的,互联层软件利用时间戳请求/应答ICMP报文从某它机器获取其时钟的当前时间,经估算后在同步时钟。
掩码请求与应答
在主机不知道自己所处网络的子网掩码时,可以利用掩码请求ICMP报文向路由器询问。
路由器在收到请求后以掩码应答ICMP报文形式通知请求主机在所在网络的子网掩码。
4.13传输层协议简介
TCP(TransmissionControlProtocol):
传输控制协议
UDP(UserDatagramProtocol):
用户数据报协议
4.14TCP/IP协议栈中的核心协议
TCP/IP协议栈中的核心协议主要有:
TCP、UDP、IP;
对主要协议起补充作用的协议有五个,它们是通过TCP/IP提供的五个应用服务:
FTP、TELNET、SMTP、DNS、SNMP。
4.15TCP与UDP
TCP(TransmissionControlProtocol):
为典型的传输大量数据或需要接收数据许可的应用程序,提供连接定向和可靠的通信,传输之前源主机与目标主机有三次握手。
UDP(UserDatagramProtocol):
提供无连接的通信,并不保证数据包被发送到,典型的即时传输少量数据的应用程序使用UDP。
TCP与UDP对比:
TCP
UDP
排序
无序
可靠
不可靠
面向连接
无连接
虚电路
低开销
三次握手
无确认
窗口流量控制
没有窗口流量控制
4.16传输控制协议(TCP)
TCP通过控制数据流量提供可靠的端到端数据传输,网络节点可以就数据传输的窗口大小达成协议,该窗口大小规定了将要发送的数据字节数,传输窗口可以根据当前的网络流量进行实时调整。
4.16.1TCP提供的服务特征
面向连接(ConnectionOrientation)
完全可靠性(CompleteReliability)
全双工通信(FullDuplexCommunication)
流接口(StreamInterface)
连接的可靠建立与优雅关闭(ReliableConnectionStartup&
GracefulConnectionShutdown)
4.16.2TCP的可靠实现
TCP建立在IP协议提供的面向非连接、不可靠的数据报(IP)投递服务基础之上,所以必须经过仔细的设计才能实现TCP的可靠数据传输。
TCP可靠性的问题即包括数据丢失的恢复问题,也包括连接的可靠建立问题
4.16.3数据的丢失与重发
在使用重发机制的过程中,如果接收方的TCP正确的接收到一个数据包,它要回发一个确认信息发给发送方。
而发送方在发送数据时,TCP需要启动一个定时器,在定时器到时之前,如果没有收到一个确认信息,则发送方重发该数据。
4.16.4连接可靠的建立与关闭
TCP使用“三次握手”的方法确保连接建立和终止的可靠性,“三次握手”就是在建立和终止过程中,通信的双发需要交换三个报文。
“三次握手”要求在每次创建一个新的连接过程中,每一端产生一个随机的32位初始序列号。
每次所请求新连接使用的初始序列号不同,TCP可以将过时的连接区分开,避免二次定义的产生。
4.16.5TCP的缓冲、流控与窗口
TCP使用窗口机制进行流量控制。
当一个连接建立时,连接的每一端分配一块缓冲区来存储接收到的数据,并将缓冲区的尺寸发送给另一端。
当到达时候,接收方发送确认,其中包含了自己剩余的缓冲尺寸。
将剩余缓冲区空间的数量称为窗口,接收方在发送的每一确认中都含有一个窗口通告。
4.16.6TCP连接与端口
在应用程序利用TCP协议传输数据之前,首先建立一条到达目的主机的TCP连接,TCP协议将一个TCP连接两端的端点称为端口。
端口用一个16位的二进制表示。
TCP利用端口提供的多路复用功能,一台主机可以通过不同的端口建立多个到其他主机的连接,应用程序可以同时使用一个多或多个的TCP连接发送或接收数据。
4.17TCP报文
TCP报文包含头和负载数据两个部分,成为一个TCP段。
下图为:
TCP报文
Bit0Bit15Bit16Bit31
源端口(16)
目的端口(16)
序列号(32)
确认号(32)
偏移量(4)
未使用(6)
标志控制(6)
窗口(16)
校验和(16)
紧急指示符(16)
选项和填充
数据负载(可变)
4.18用户数据报协议(UDP)
使用UDP是以无连接数据流的方式传送数据,这种方式在发送的基于IP的数据报之上,几乎没有增加任何开销,UDP由简单的包头和数据组成。
其特点:
UDP协议提供了非面向连接、不可靠传输服务。
它使用IP数据报携带数据,但增加了对给定主机多个目标的区分能力
UDP协议既不使用确认信息对数据的到达进行确认,也不需要对收到的数据进行排序。
因此,利用UDP协议传送的数据有可能出现丢失、重复或乱序的现象,一个使用UDP协议的应用程序要承担可靠性方面的全部工作
UDP协议的最大优点是运行的高效性和实现的简单性
UDP使用端口对给定主机的多个目标进行区分
UDP报文
长度(16)
数据负载
4.19应用层协议简介
FTP(FileTransmissionProtocol):
文件传输协议
HTTP(HypertextTransferProtocol):
超文本传输协议
DNS(DomainNameSystem):
域名系统
TFTP(TrivialFileTransferProtocol):
简单文件传送协议
SNMP(SimpleNetworkManagementProtocol):
简单网络管理协议
SMTP(SimpleMailTransmissionProtocol):
简单邮件传送协议
NFS(NetworkFileSystem):
网络文件系统
4.20常见协议号
协议
协议号
ip
icmp
1
tcp
6
udp
17
4.21端口号
计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。
其中硬件领域的端口又称接口;
软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,端口号主要用来标识特定的应用程序。
4.21.1端口号的两种基本分配方式
全局分配:
由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众。
本地分配:
又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来绑定(binding)。
4.21.2端口号的分类
(1)公认端口(WellKnownPorts):
从0到1023,它们紧密绑定(binding)于一些服务。
(2)注册端口(RegisteredPorts):
从1024到49151。
它们松散地绑定于一些服务。
(3)动态和/或私有端口(Dynamicand/orPrivatePorts):
从49152到65535。
理论上,不应为服务分配这些端口。
实际上,机器通常从1024起分配动态端口。
4.21.3常见端口号
端口号
ftp-data
20/tcp
ftp
21/tcp
telnet
23/tcp
smtp
25/tcp
dns
53/tcp
53/udp
tftp
69/udp
http
80/tcp
pop3
110/tcp
imap
143/tcp
snmp
161/udp
本章小结:
什么是协议?
什么是协议栈?
协议作用是什么?
叙述下列分别是什么协议?
该协议作用为什么?
TCP/IP参考模型共分为几层?
每层的功能分别是什么?
叙述TCP与UDP区别
什么是端口号?
列举常见的端口号
参考文件
%systemroot%\system32\drivers\etc\services文件