《2022年网络协议详解 .pdf》由会员分享,可在线阅读,更多相关《2022年网络协议详解 .pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网络协议详解 -ICMP 本文的参考资料很多来自于MSDN Library - January 2002,对使用金山网镖的 IP 规则配置工具和日志查看过程中需要用到的一些协议知识进行了英文原文的翻译和提炼工作,把一些原文中相对专业的说法用一种我认为方便理解的方式说出来,并且会对一些比较抽象的东西进行解释(很可能会因此删改原文并且可能不会使用一些约定俗成的术语) , 以便不了解协议的人也能尽可能地知道这些协议是做什么的。由于只考虑针对初学者在产品应用上的帮助,让他们有一个基本认识,而不用总是在出了问题以后焦急地等待别人的帮助,所以本文可能不会让你获得一个全面的TCP/IP 协议知识体系,如果想
2、要了解TCP/IP 协议更深层次的知识,请参考一些专门的书籍并阅读本文所引用的英文原文出处 (后附) , 如果想获得 TCP/IP 协议的最权威解释,请参考 RFC 相关文档(英文)。本文尽量做到简单全面,但是作者的学识所限,错误在所难免,有任何纰漏之处,敬请各位方家不吝赐教,谢谢。本文将会不定期地修正。一、ICMP 协议ICMP 全称 Internet Control Message Protocol ,即网际控制消息协名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 2
3、2 页 - - - - - - - - - 议。是作为 TCP/IP 协议体系的一个组成部分出现的。它的基本用途是对网络的故障进行侦测并返回报告。ICMP 协议在网络中被广泛使用,其中,路由器等一些设备会经常需要使用到这个工具,一台独立主机也会使用这个工具向其他的路由器、中间设备或者主机通告错误信息或者自己的状态更新, 这就可以解释为什么自己的金山网镖怎么总是拦截来自一些莫名其妙的IP 地址的 ICMP 数据包了,比如,局域网用户的金山网镖可能在高安全级下经常报告收到来自224.0.0.0的 ICMP 数据包,这往往就是网段内路由器发出的更新信息。需要说明的是,下面对一些ICMP 消息的代码域
4、的介绍可能会非常难于理解,不必管他,只需要对ICMP 的类型进行了解就够了, 类型代码我也一并加上来是为了满足一些希望深入了解ICMP 的网友的。每一条ICMP 消息都包含了三个区域来定义这条消息所需要达到的目的和一个奇偶校验值,这三个区域分别是: 类型、代码和校验区域。类型域用于鉴别ICMP 消息,代码域则包含了与类型域相关联的一些详细信息, 而校验域则提供了一个判断一条ICMP 消息完整性的方法。类型域所规定的类型如下(注意:类型描述部分不翻译,读者自行理解英文原文更好):类型描述- - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
5、- - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect Message 8 Echo Request 11 Time Exceeded 12 Parameter Problem 13 Timestamp Request 14 Timestamp Reply 15 Information Request (No Longer Used) 16 Information Reply (No Longer Use
6、d) 17 Address Mask Request 18 Address Mask Reply 1、回显请求和回显响应(Echo Request and Echo Reply ,即类型 0 和8)回显请求( Echo Request )是所有 ICMP 消息中最常用的,通常用来检测网络连接是否通畅,大家熟悉的ping 就是用来发送这两个请求的。一个回显请求数据包会包含类型域8(echo request )和代码域 0,而一个回显响应( echo reply )数据包则会包含类型域0 和代码域 0。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
7、 - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 2、目的地不可到达( Destination Unreachable ,即类型 3)当一个ICMP 数据包无法正常传送,就会返回一个类型3 的Destination Unreachable信息。类型 3 的 ICMP 消息一共有 15 个代码值,列表如下,同样,不会翻译描述栏。读者可能对前面说的ICMP“代码域则包含了与类型域相关联的一些详细信息”这句话感觉很抽象,这里就好理解了, 所谓的“域类型域相关联的一些详细信息”就是下面的这些代码值。 需要注意的是,这只是类型3 的
8、代码值, 下面还有类型 5 的代码值,这些代码值都是与一个特定类型域相关联的,类型 3 的代码值不能用于类型5 的,虽然数字一样, 但是意义完全不同,这一点一定要注意。类型 3 代码值描述- - 0 Network Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable 4 Fragmentation needed and DF (Dont Fragment) set 5 Source route failed 6 Destination Network unknown 名师资料总结 - - -精品资料欢
9、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 7 Destination Host unknown 8 Source Host isolated 9 Communication with Destination Network Administratively Prohibited 10 Communication with Destination Host Administratively Prohibited 11 Network Unreachable
10、 for Type of Service 12 Host Unreachable for Type of Service 13 Communication Administratively Prohibited by Filtering 14 Host Precedence Violation 15 Precedence Cutoff in Effect 3、源结束( Source Quench ,即类型 4)一个 ICMP 源结束(Source Quench )消息包含类型域4 和代码域0。当 ICMP 消息的目的地不能处理通讯的时候,一个源结束消息就会在被立即发送出去, 几乎和消息源的发送
11、速度同步进行。源结束消息会告诉消息的发送源立即降低自己的消息发送速度。在发送元降低自己的发送频率到目的地一端可以接受的程度前,目的地一端会一直发送源结束消息给发送源(打个比方,你是乒乓球陪练员,你一分钟发 60 个球给对方,对方无法接受这么多的球,就会大声的对你喊慢点,你就会减少自己每分钟的发球数或者根本停止,等对方可以接受你每分钟的发球数再进行对练) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 4、重定向消息( Red
12、irect Message ,即类型 5)当一个中间设备发现一个正在被请求的路径可以通过本地或者一条更好的路径访问的时候,一条重定向消息就会发送出去。重定向消息包含了类型域5,并且其代码域可以有以下几个值定义:类型 5 代码值描述- - 0 Redirect datagrams for the Network 1 Redirect datagrams for the Host 2 Redirect datagrams for the Type of Service and Network 3 Redirect datagrams for the Type of Service and Host
13、 5、超时( Time Exceeded ,即类型 11)当路由器或者一个主机因为超时而丢弃了数据包的时候,就会产生一个类型 11 的超时 ICMP 信息。超时 ICMP 消息的代码域可以有两个值:0 和 1。当数据包的跃点计数超出规定并且数据包被丢弃(这句话不用过多的看) 的时候,代码值就是 0;而当分开的 IP 数据包的重组时间超过了规定时间时,代码值就是1。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 6、参数有问题(
14、 Parameter Problem ,即类型 12)当一个中间设备或者主机发现无法处理一个数据包的时候,一个类型 12 的 ICMP 消息就会被发送出去,导致这个ICMP 消息发送出去的原因一般是错误的消息头或者丢失的选项。如果导致这个消息产生的原因是一个必需的选项丢失,那么这条消息的代码值就是1;如果返回的消息代码值是0,那么消息的指针域就会包含出问题的这个数据包头的八进制数据。7、时间戳请求和时间戳回应(Timestamp Request & Timestamp Reply ,即类型 13和 14) 时间戳请求和时间戳回应是解决不同设备之间时间同步问题的根本办法。时间戳请求的类型是13,
15、而时间戳回应的类型是14。但是由于这个解决时间同步的办法是粗放而且不可靠的,所以这个办法并没有被广泛使用。8、消息请求和消息回应(Information Request & Information Reply ,即类型 15和 16)这两个ICMP 类型最初是为使一台启动主机能够实现自主分配IP 地址而设计的,但是现在已经没有使用了,取而代之的是BOOTP和 DHCP,具体信息请自行查看相关文档。9、地址掩码请求和地址掩码回应(Address Mask Request & Address 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
16、- - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - Mask Reply,即类型 17 和 18)一台可联网机器在探测本地网络中使用的子网掩码的时候,就会发送类型 17 的地址掩码请求ICMP 消息。而扮演中间层设备的计算机或者设备就会回应一个类型18 的地址掩码回应ICMP 消息。网络协议详解 -TCP/IP 二、TCP/IP 协议简介TCP/IP 是 Transmission Control Protocol 和 Internet Protocol 的缩写。TCP/IP 是 Internet主干网络的核心组成部分。它描述了一个四层
17、模型,即网络访问层、网际层、传输层(也叫做主机到主机层)、进程/应用层,在一个 TCP/IP 网络上,数据被切割成一个一个的小数据包发送出去, 这些数据包都包含了所要去往的目的地地址,到达目的地以后,会被自动的合并起来。对于这四层,可以这么理解:在一家肉类加工厂中,有许多的设备、人员等,其中, 加工厂中的仓库管理员就是这里所说的网络访问层(中间层或者叫做链路层) ,他们控制原料的入库和产成品的出库,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - -
18、- - - - - 但是他们不过问生产(没有应用) ;厂内进行原材料初加工和产成品运输的工人就是这里所说的网际层,初加工人员从仓库中把肉提出来,进行初步的加工, 然后送到流水线进行生产,而运输工人就把生产完成的肉制品送到仓库; 而流水线就类似于传输层 (主机到主机层)了,初加工后的肉制品被一节一节的传送、处理;最后就是包装工人了,他们就是 TCP/IP 体系中的进程 /应用层,他们把从流水线上送过来的半成品进行各类细加工并进行包装成为产成品。不同于最初的OSI 模型, TCP/IP 更加注重对互连设备之间的数据传输,而 OSI 模型则更加注重于对各个设备之间通信原理的描述,也就是说, TCP/
19、IP 是一个严格的市场标准,而OSI 模型则是一个学术标准(实际上, TCP/IP 的通讯也遵循 OSI 模型描述的原理)。有关OSI 模型的详细信息,请自行参考相关书籍,这里重点说明一下TCP/IP 协议模型(从模型的底层往高层介绍)。1、网络访问层网络访问层也叫做中间层或链路层,它负责通过网络设备发送TCP/IP 数据包,并通过网络设备接收TCP/IP 数据包,这一层没有任何应用。 TCP/IP 协议被设计为不依赖于任何网络访问方式、体系结构和介质,因此, TCP/IP 可以跨越不同的网络类型进行通讯,比如基于以太网(Ethernet )或令牌环(Token Ring)技术的局域网 (LA
20、N)同基于 X.25 或帧中继技术的广域网(WAN)进行通讯。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 2、网际层网际层即 Internet Layer, 它负责数据包的寻址、 封装和路由功能。网际层的核心协议就是IP 协议、ICMP 协议、IGMP 协议、ARP 协议。其中 ICMP 协议在第一部分已经说明, ARP 协议是地址转换协议的英文缩写,由于在金山网镖中不牵涉到,因此不作多说。这里需要介绍一下 IP 协议和
21、IGMP 协议A、IP 协议(这里只简单介绍IP 协议,对于 IP网络中的命名、寻址、子网化等等不作介绍,读者可以参考更加专业、详细的书籍)IP 协议负责将数据包切割成一小块一小块的,然后每个数据包都加上一个目的地地址, 并且通过选择一定的路径发送出去,最后到达目的地以后又重新把一个个的小数据包合并成一个完整的数据。在一个 IP 数据包中需要包含很丰富的信息,这其中包括:所使用 IP 协议的版本号,即IPv4 或者 IPv6;IP 数据包头的长度(可以让接收端知道IP 头在何处结束,并且从何处开始读取数据);IP 数据包的总长度 (以字节为单位, 最大只能有 65535字节,超出这个范围,接收
22、端将会认为这个IP 报文被破坏而丢弃);生存时间(告诉传送过程中经过的设备这个IP 报文允许继续传输名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 下去的时间, 一般是 15-30秒,超过这个时间, 设备将会丢弃数据包,并给发送者一个回执,告诉发送方它发送的数据包丢弃或者丢失了,让它重新发送);处理这个 IP 报文的上层协议号(网际层的上层) ;校验 IP 数据包头数据有效性的值;此 IP 报文发送者的地址;IP 报文将要到
23、达的地址。一个 IP 数据包包含的信息并非只有这8 项,但是最主要的信息只有这 8项,其余的基本上是一些可选信息。IP 协议拥有丰富信息并且可以实现一些功能,但是由于IP 只是一个网际层协议,所以IP协议不足以实现高层的一些应用服务。B、IGMP 协议是 Internet Group Management Protocol的缩写,用于 IP 多点传送(多播)。所谓多点传送就是指在网络中的单一发送者和多个接收者的通讯。 IGMP 用于在支持多点传送的路由器和支持多点传送的网络组成员之间交换成员状态。3、传输层传输层也叫做主机到主机层。 这一层为下一节要介绍的应用层提名师资料总结 - - -精品资
24、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 供会话和数据包通讯服务。这一层的核心协议就是传输控制协议,即TCP (Transmission Control Protocol ) 和用户数据包协议,即 UDP (User Datagram Protocol) 。这个部分是金山网镖IP规则编辑应用过程中的所牵涉到的重点。A、TCP 协议即 Transfer Control Protocol(传输控制协议)的缩写。TCP 协议使用 IP(但是注意,使用IP
25、 并不意味着 TCP 和 IP 是包含关系,二者是独立的协议, 就像前面所举例的原材料初加工、产成品运输的工人和流水线的关系一样,二者有联系,但是却独立。) ,提供了一种端到端的、基于连接的、 可靠的通信服务。之所以说它可靠,首先是因为每一个 TCP 连接都会在发送端和接收端之间产生三次预先通讯,用术语来说就是TCP 的三次握手( Handshake ) ,三次握手的过程会在稍微后面提到。它负责确定一个TCP 连接,并且负责数据包的发送确认和发送的次序,同时负责重新传送在传输过程中破坏或者丢失的数据包;它能够对成功接收的数据包进行回应,可以测试所接收数据包的完整性,并把接收到的次序错乱的数据包
26、进行顺序整理,这些是TCP 通讯可靠性的另一个方面。由于 TCP 是用户应用和诸多网络协议之间的纽带,因此TCP 必须能够同时接收多个应用的数据,并且必须具备跟踪记录到达的数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 包需要转发到的应用程序的功能,这个功能是通过端口来 实现的。对于端口, 相信使用只要是上网的人一定不会陌生这个词,在很多的文章、软件中广泛使用到了这个词汇, 但是相信也有不少人对 “端口” 这个词是知其然
27、不知其所以然的。 端口的作用在上面已经说到了,这里要进行深入了解的话,需要介绍一下 TCP 协议数据包头的结构。在 TCP 协议头的结构介绍中,你可以获得金山网镖IP 规则编辑器中可能让你有点莫名其妙的“标志”的相关信息(在日志中也存在,你可能经常收到类似于“来自x.x.x.x 的 TCP 请求,标志位: ACK ”这样的报告)。注意:以下内容需要一些计算机原理基础知识,如果不明白,可以不用管那些“位”(Bit)TCP 协议头最少有 20 字节( Bytes) 。TCP 协议头包含以下部分(称为域):TCP 源端口:用于指示源端口的数值,这是一个16 位的二进制数(2 个字节, 2 Bytes
28、) 。源端口和源 IP 的作用就是标明数据包的返回地址。由于是一个 16 位二进制数, 也就意味着有 65535个可用端口;TCP 目的端口:用于指示目的端口的数值,也是一个16 位二进制数(2Bytes) 。目的端口用来指明接收端上应用程序的地址接口;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 很显然,在日常应用中,一些常规应用使用的端口是众所周知的,比如 HTTP 服务使用 80端口、FTP 服务使用 21 端口等等
29、, 这些是经过 Internet 的管理者 ICANN 所定义了的,可以被所有主机识别,但是面对 65535个如此庞大的端口数目, 没有必要对所有的端口一一定义,于是 ICANN 只定义了前面 1024个端口( 0-1023) ,而大于 1023的端口则称为高端端口, 不被定义。用户的应用程序可以随机打开高端端口进行通讯(当然也可以使用定义了的1024 个端口中的一个,但是需要小心的是, 前 1024个端口是被各种协议、 服务广泛使用的,如果你的应用程序使用这些端口,将可能和其他的服务产生冲突,无法通信)。需要注意的是,你并不能直观地看到一个TCP 包中所包含的这些端口信息,金山网镖也不会剖开
30、一个封包告诉你一大堆的二进制数让你知道端口号,你所看到的日志以及在IP 规则编辑器中需要指定的端口号, 其实是一个叫做套接字的东西,所谓套接字就是由主机端口和 IP 地址组合而成,类似于127.0.0.1:3389这样的形式。TCP 序列号:这是一个32位二进制数( 4 Bytes) 。一个 TCP 数据包中包含的序列号是提供给接收方计算机使用的,目的在于把到达目的地的乱七八糟的数据包重新排列;TCP 应答号:也是一个 32 位二进制数 (4 Bytes)。 就是使用 ACK(应名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
31、师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 答)标志下一个希望收到的数据包的第一个字节。这个部分只有在后面将要说到的ACK 标志被设为有效的时候才存在;数据偏移:是一个32 位二进制数。告诉接收方,数据的开始位置在什么地方;保留域:一个6位二进制数,为将来可能的用途保留;TCP 标志位(也称控制位,有的日志报告使用英文Flag) :一共有六位标志位。它们分别是URG、ACK 、PSH、RST、SYN、FIN。下面会对这六个标志位进行一些介绍,并且告诉你一些网络安全上的常规知识:URG:此标志表示 TCP 包的紧急指针域 (后面马上就要
32、说到)有效,用来保证TCP 连接不被中断,并且督促中间层设备要尽快处理这些数据;ACK:此标志表示应答域有效,就是说前面所说的TCP 应答号将会包含在 TCP 数据包中;有两个取值: 0 和 1,为 1 的时候表示应答域有效,反之为0;PSH:这个标志位表示Push操作。所谓 Push操作就是指在数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 据包到达接收端以后, 立即传送给应用程序, 而不是在缓冲区中排队;RST:这个标
33、志表示连接复位请求。用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包;SYN:表示同步序号,用来建立连接。SYN 标志位和 ACK 标志位搭配使用,当连接请求的时候,SYN=1,ACK=0;连接被相应的时候, SYN=1,ACK=1;这个标志的数据包经常被用来进行端口扫描。扫描者发送一个只有SYN 的数据包,如果对方主机响应了一个数据包回来,就表明这台主机存在这个端口;但是由于这种扫描方式只是进行TCP 三次握手的第一次握手,因此这种扫描的成功表示被扫描的机器不很安全, 一台安全的主机将会强制要求一个连接严格的进行 TCP 的三次握手;FIN:表示发送端已经达到数据末尾,也就是说双方
34、的数据传送完成,没有数据可以传送了,发送FIN 标志位的 TCP 数据包后,连接将被断开。 这个标志的数据包也经常被用于进行端口扫描。当一个 FIN 标志的 TCP 数据包发送到一台计算机的特定端口,如果这台计算机响应了这个数据,并且反馈回来一个RST 标志的 TCP 包,就表明这台计算机上没有打开这个端口,但是这台计算机是存在的; 如果这台计算机没有反馈回来任何数据包,这就表明,这台被扫描的计算机存在这个端口。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页
35、- - - - - - - - - 需要说明的是,金山网镖的日志报告使用的不是这些标志位的全称,而是使用的这些标志位的首字母,比如拦截到一个包含FIN 标志的 TCP 数据包将会报告x.x.x.x 的 TCP 数据包: F。还有一点,你的日志可能报告x.x.x.x 的 TCP 数据包: NULL ,这是什么? NULL 标明发送给你的数据包不包含任何标志位,你收到这种数据包, 很多情况下意味着你被扫描,扫描者发送NULL数据包给你,如果你的计算机发送回去了一个FIN 标志的 TCP 数据包,就表明他探测的端口在你的计算机上不存在, 但是你的计算机就已经被确定存在了,这样他就可以使用其他的扫描方
36、式进行端口探测。有一些特殊的扫描方式可以绕过不严谨的防火墙。了解到了 TCP 标志位的含义,就可以了解TCP 的三次握手是怎么进行的了:发送端发送一个SYN=1,ACK=0 标志的数据包给接收端,请求进行连接,这是第一次握手;接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1 标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送一个确认数据包,这是第二次握手;最后,发送端发送一个SYN=0,ACK=1 的数据包给接收端,告诉它连接已被确认,这就是第三次握手。之后,一个TCP 连接建立,开始通讯。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
37、- - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - TCP 窗口( TCP Window) :一个 16 位二进制数。是接收端使用的一个域,它将告诉发送者,它想收到的TCP数据包大小;TCP 校验和( Checksum ) :这是包含在一个TCP 头的中 16 位二进制校验数值。发送端针对数据包进行一次计算,得到一个数值,然后接收端也会进行同样的计算。这样做是为了充分保证被传送的TCP数据包没有一丝更改, 如果接收端进行计算后得到和发送端同样的结果,则表明这个数据包没有更改,反之则表示数据包被更改,将被丢
38、弃;紧急指针域:这是一个可选的16 位二进制指针。所谓指针,就是指向某一个段落或者记录、地址的标志,可以这么理解:你开车走在错综复杂的道路上, 不知道该往哪走, 这时候一个人用手给你向东方指出,于是你就往东发行驶, 这个给你指路的人也就可以理解为指针。这个指针域只有在前面所说的URG 标志为存在的时候才会有效。紧急指针指向TCP 段内的最后一个字节,用来督促各种网络设备尽快的处理这个数据包;选项域:一个可变长度的区域,至少有1 字节( Byte) 。如果这个字节为 0,表示没有选项,并且选项域结束;如果为1,表示没有操作;如果为 2,表示下四个字节包含了发送端的最大段长度(如果不赋值,表示段没
39、有限制) ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 可变长填充域: 这个域是用来保证可以预测空间大小的。为了保证TCP 头是 32 位的整数倍,这个域会被加入额外的0。网络协议详解 -UDP- - B、UDP 协议UDP 是 User Datagram Protocol (用户数据报协议)的英文缩写。UDP 只提供一种基本的、低延迟的被称为数据报的通讯。所谓数据报,就是一种自带寻址信息,从发送端走到接收端的数据包。U
40、DP协议经常用于路由表数据交换转发和系统信息、网络监控数据等的交换。UDP 协没有 TCP 那样的三次握手并且基于数据报,因此UDP不基于连接,也没有TCP那样丰富的头信息以实现诸多功能。UDP 数据报的头只包含了类似于TCP 中包含的 UDP 源端口、UDP 目的端口号、 两个字节的校验和域、 两个字节的信息长度域 (用来告诉接收端信息的大小,让接收端判断信息是否有效)。由于 UDP 协议是如此简单,所以不要指望UDP 连接会像 TCP连接那样可靠,它一点都不可靠,UDP 只负责尽力的转发数据包,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
41、 - - - - 名师精心整理 - - - - - - - 第 19 页,共 22 页 - - - - - - - - - 但是却不会把错误的数据报重新发送,它会丢弃掉所有被破坏或者损坏的数据报,并且继续后面的传送,至于被丢弃的部分, 发送端不知道,也不会被接收端要求重新发送;除此之外,UDP 不具备把乱序到达的数据报重新排列的功能(因为没有TCP 头中包含的 TCP 序列号) ,这样一来, UDP 便是完全不可靠的,因为你根本就无法保证你收到的数据是完整的。但是,UDP 协议的不可靠并不代表UDP 是毫无用处的,恰恰相反,没有了和TCP 一样的复杂头信息,各种设备处理 UDP 数据报的时间将
42、会大大缩短,效率比TCP 要高得多, 你可以想象,你看 13 页书比看 4 页书需要用的时间谁会更多。由于UDP处理的这种高效性, UDP 往往被用于那些数据报不断出现的应用,比如 IP 电话或者实时视频会议,也被用于在路由器之间传输路由表更新信息、传送网络管理和监控数据等,DNS 也是使用 UDP 协议进行域名转换。4、进程 /应用层应用层赋予应用程序访问其它层所提供服务的能力,并且规定应用程序使用何种协议进行数据交换。这一层包含了众多的服务协议,是跟终端用户最为接近的一层。这一层中包含的服务协议有:HTTP(Hypertext Transfer Protocol 超文本传输协议)、FTP(
43、File Transfer Protocol 文件传输协议)、 SMTP (The Simple Mail Transfer Protocol 简名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - - - - - - 单邮件传输协议)、Telnet (一种终端仿真协议,常用于远程登录管理计算机) 、 DNS(Domain Name System 域名系统 )、 RIP(Routing Information Protocol 路 由 侦 听 协 议
44、 ) 、 SNMP( Simple Network Management Protocol 简单网络管理协议)等等。这其中有一个重要的服务协议就是NetBIOS,下面简单介绍。NetBIOS 是一个名称解析服务,准确的说,在微软的Windows TCP/IP 体系中,它处于应用层和传输层的中间。它的作用就是把一个名称映射到对应的IP 地址上。它广泛存在于各种局域网应用中,虽然是一个过时的协议(因为Windows 2000 以后的版本使用域进行管理, Windows 2000 域使用DNS 进行名称解析,这一点不同于Windows NT 4 中的域概念),但是应用范围还是很广。一个 NetBIO
45、S 名称一共有 16 字节。NetBIOS 名称是一个唯一的名称或者是一个组名称,当一个NetBIOS 进程和一个特定的计算机进行通讯的时候,就使用唯一的名称,如果这个NetBIOS 进程和多个计算机进行通讯, 那么就使用组名称。 NetBIOS 名称扮演会话层应用程序标识的角色,比如NetBIOS 会话服务通过 TCP 139端口进行。所有通过 TCP/IP 会话的 NetBIOS 都被定位到了 TCP 139端口。下图将会告诉你服务器、转向器和信使服务关联的NetBIOS 名称。在图中,你很容易看到NetBIOS 使用的各类端口的信息。名师资料总结 - - -精品资料欢迎下载 - - -
46、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 现在,在使用金山网镖过程中所可能用到的TCP/IP 协议知识基本上介绍到了。如前面所说,这里没有详细讨论TCP/IP 体系结构的细节,IP的细节也没有涉及, 但是,通过对 TCP/IP 结构的简单叙述,应该可以让你有一个初步的认识,虽然可能并不完整。 文中所用到的一些术语, 能够尽量解释的我都解释了,但是另一些术语不可能在这里解释明白, 因为需要牵涉到其他的学科内容,比如转发器这些等等就需要牵涉到一些通信方面的知识,你大可以不必深
47、究。本文参考了 TCP/IP Unleashed ,因为前导工作室翻译出来的这本书的翻译效果很不好, 出现了多处术语错误, 所以参考原文对一些部分进行重新翻译。如前言所说,本文只进行了提炼和翻译工作,加入了我的一些理解和我知道的一些相关知识,有些部分是完整的英文翻译有的是部分引用, 读者若需要知道详细信息, 还是应该查看英文原文,不要去看那些翻译文档, 说实话有些翻译过来的文档根本不像一个学计算机的人翻译的,我这次接触的几个中文文档都有这个问题。翻译过来的文章是翻译者本人的理解,译者可能明白了,但是看译稿的人可能就会犯迷糊。我的翻译尽量避免这种情况, 但是因为英语层次所限也会有些翻译不准确的时候,因此,我强烈推荐本文的读者们找到这些英文原版书籍进行阅读。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -