1、第四章 网络通信协议,“网络通信协议”是计算机网络的一个重要组成部分,是不同网络之间通信、“交流”的公共语言。有了它,使用不同系统的计算机或网络之间才可以彼此识别,识别出不同的网络操作指令,建立信任关系。 本章重点 TCP/IP协议参考模型 TCP/IP协议族所包括的子协议及各自的主要用途 TCP协议的三次握手原理 PPP协议的帧格式 PPP协议的链路建立过程和身份验证过程 PPPoE协议的工作原理 HTTP协议的请求头和应答头 HTTP协议的报文格式和工作原理,4.1 计算机网络通信协议概述,网络通信协议(Network Communication Protocol,通常简称为“网络协议”(
2、Network Protocol)就是对计算机之间通信的信息格式、能被收/发双方接受的传送信息内容的一组定义。为了实现OSI七层参考模型功能,各层都有许多负责各个不同方面,解决不同问题的通信协议,如有物理层中的物理接口通信协议(如RS-232、RS-449和V.35等),数据链路层的数据链接协议(如CSMA/CD、SDLC和HDLC等),网络层则有许多路由层协议(如IP、RIP、OSPF和IGRP等),传输层则有许多传输控制协议(如TCP、FTP和TFFP等),同样会话层、表示层和应用都有许多相应的的网络协议(如应用层的POP3、SMTP、SNMP和DNS等)。就是在这些许许多多的通信协议的共
3、同作用下,网络的七层模型才能全部正常工作,确保网络通信的正常。,4.1.1 网络协议的分类,网络协议是一种特殊的软件,是计算机网络实现其功能的最基本机制。网络协议的本质是规则,即各种硬件和软件必须遵循的共同守则。但网络协议又不是一套单独的软件,它通常融合在其他软件系统中。网络协议遍及OSI通信模型的各个层次,从我们非常熟悉的TCP/IP、HTTP、FTP协议,到OSPF、IGP等高级路由协议都可以认为是网络协议,有上千种之多。 在所有常用的网络协议中,又可以分常用的基础型协议和常用的应用型协议。TCP/IP、IPX/SPX、NetBEUI属于常用的基础型协议;而HTTP、PPP、FTP则属于常
4、用的应用型协议。基础型协议用来提供网络连接服务,它在网络连接和通信活动中必不可少;应用型协议对于网络来说不是必需的,而是在具体应用到网络服务时才需要。如HTTP协议只在进行因特网应用时才需要,FTP协议则只用于文件传输活动中。,4.1.2 网络协议的作用与组成,网络协议所起的主要作用和所适用的应用环境各不相同,有的是专用的,如IPX/SPX就专用于Novell公司的NetWare操作系统,而NetBEUI协议则专用于微软公司的Windows系统;有的则是通用的(当然是相对的),如TCP/IP协议就适用于几乎所有的系统和应用环境。在这么多的网络协议中,一般网络用户只需要着重掌握几种常用和主要的协
5、议即可。 网络协议包括语义、语法和时序三个组成部分。 语义是对协议元素的含义进行解释,不同类型的协议元素所规定的语义是不同的。语法是将若干个协议元素和数据组合在一起用来表达一个完整的内容所应遵循的格式,也就是对信息的数据结构做一种规定。而时序是对事件实现顺序的详细说明。例如在双方进行通信时,发送点发出一个数据报文,如果目标点正确收到,则回答源点接收正确;若接收到错误的信息,则要求源点重发一次。,4.2 TCP/IP协议,TCP/IP协议是目前无论局域网,还是广域网广泛使用的一种最重要网络通信协议。它起源于20世纪60年代末,首先由美国国防部高级研究规划署(DARPA,Defense Advan
6、ced Research Projects Agency)作为研究的一部分。现在最新版的Windows系统中,几乎都只需安装TCP/IP协议即可与所有以前版本的Windows系统实现网络互联。除了在局域网中广泛应用外,在因特网的应用中,它也是必不可少的。 4.2.1 TCP/IP协议的发展历程 TCP/IP协议起源于20世纪60年代末,首先是由美国国防部高级研究规划署(DARPA)作为研究的一部分。目前,它是应用最广,而且功能最为强大的一个协议,已成为事实上的计算机互连通信标准。 下面摘要列出了TCP/IP发展史上的一些重大事件: 1970年,ARPANET主机开始使用网络控制协议(NCP),
7、这就是后来的传输控制协议(TCP)的雏形。,1972年,Telnet协议推出。Telnet用于终端仿真以连接相异的系统。在二十世纪七十年代早期,这些系统使用不同类型的主机。 1973年,文件传输协议(FTP)推出。FTP用于在相异的系统之间交换文件。 1974年,传输控制协议(TCP)被详细规定下来。TCP取代NCP,它为人们提供了更可靠的通信服务。 1981年,Internet协议(IP)(又称IP版本4IPv4)被详细规定下来。IP为端到端传递提供寻址和路由功能。 1982年,国防通信署(DCA. 和ARPA建立了传输控制协议(TCP)和Internet协议(IP)作为TCP/IP协议套件
8、。 1983年,ARPANET将NCP替换为TCP/IP。 1984年,域名系统(DNS)推出。DNS可将域名(如)解析为IP地址(如192.168.5.18)。 1995年,Internet服务提供商(ISP)开始向企业和个人提供Internet接入。 1996年,超文本传送协议(HTTP)推出。万维网使用HTTP。并且第一套IP版本6(IPv6)标准发布。,4.2.2 TCP/IP协议参考模型,TCP/IP协议组件映射到一个称为DARPA的四层模型上。该模型是根据最初开发TCP/IP的美国政府机构的名称命名的。DARPA模型的四个层是:应用层、传输层、网际互联层(Internet层)和网络
9、接口层,各层分别对应于七层OSI模型中的一层或多层。TCP/IP协议体系结构如下图所示。,1. 网络接口层 网络接口层(又称网络访问层)负责向网络媒体发送TCP/IP数据包,并从网络媒体接收TCP/IP数据包。 DARPA模型的网络接口层对应OSI模型的“数据链路层”和“物理层”两个层次。DARPA模型的“网际互联层”(Internet层)没有利用OSI模型数据链路层中可以使用的排序服务和确认服务。网际互联层假定网络接口层不可靠,并假定传输层或应用层负责通过建立会话和进行数据包的排序及确认来确保可靠地进行通信。 2. Internet层 Internet层的职责包括寻址、打包和路由功能。Int
10、ernet层与OSI模型的网络层类似。TCP/IP协议套件在Internet层有两个协议集: IPv4:通常简称IP,是当前在专用Intranet中和Internet中普遍使用的Internet层协议。 IPv6:是新的Internet层协议,它最终将取代现有的IPv4 Internet层。 3. 传输层 传输层(又称“主机到主机传输层”)为应用层提供会话和数据报通信服务。传输层承担OSI传输层的职责。,传输层的核心协议是TCP和UDP协议。TCP提供一对一的、面向连接的可靠通信服务。TCP建立连接,对发送的数据包进行排序和确认,并恢复在传输过程中丢失的数据包。UDP提供一对一或一对多的、无连
11、接的不可靠通信服务。如果要传输的数据量很少,则通常使用UDP协议。 4.应用层 应用层允许应用程序访问其他层的服务,定义了应用程序用来交换数据的协议。应用层包含大量的协议,而且人们一直在开发新的协议。 人们最熟悉的应用层协议如下: 超文本传输协议(HTTP):用于传输那些构成万维网上的页面的文件。 文件传输协议(FTP):用于传输独立的文件,通常用于交互式用户会话。 简单邮件传输协议(SMTP):用于传输邮件和附件。 此外域名系统(DNS)协议、路由信息协议(RIP)和简单网络管理协议(SNMP)等应用层协议可以帮助您使用和管理TCP/IP网络。,4.3 TCP/IP协议簇,TCP/IP协议包
12、括两个子协议:(1)TCP协议(Transmission Control Protocol,传输控制协议),(2)IP协议(Internet Protocol,因特网协议)。在这两个子协议中又包括许多应用型的协议和服务,使得TCP/IP协议的功能非常强大。新版TCP/IP协议几乎包括了现今所需的常见网络应用协议和服务。 4.3.1 TCP/IP协议的核心协议 TCP/IP协议中除了包括TCP、IP两个分协议外,还包括许多子协议。它的核心协议包括用户数据报协议(UDP)、地址解析协议(ARP)及因特网控制消息协议(ICMP)。 UDP协议 用户数据报协议(User Datagram Protoc
13、ol,UDP)与IP协议一样,也是一个无连接协议。它属于一种“强制”性的网络连接协议,能否连接成功与UDP协议无关。,UDP协议的主要作用是将网络数据流量压缩成数据报的形式。 UDP协议主要用来支持那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多客户/服务器模式的网络应用。ARP协议 ARP(Address Resolution Protocol ,地址解析协议)协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 ICMP协议 ICMP(Internet Control Message Protocol,因特网控制消息协议)是TCP
14、/IP协议族的一个子协议,主要用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要作用。 ICMP协议对于网络安全非常重要。因为ICMP协议本身的特点,决定了它非常容易被用来攻击网络上的路由器和主机。如可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理就是这个。,4.3.2 应用接口协议,TCP/IP协议中的应用接入口协议主要包括用于开发网络应用程序的W
15、indows套接字(Socket)、用于远程过程调用的远程调用(RPC)、用于建立逻辑名和网络上的会话的NetBIOS协议,以及用于通过网络共享,嵌入在文本信息中的网络动态数据交换(Dynamic Data Exchange,DDE)。 1. Socket Socket 是进行程序间通信(IPC. 的 BSD 方法,它用来让一个进程和其他的进程互通信息,就像用电话和其他的人交流一样。在进行网络通信前必须先建立Socket以侦听线路。具体的侦听步骤参见书中介绍。 2. RPC RPC(Remote Procedure Call,远程过程调用)是Windows操作系统使用的一种远程进程调用协议。R
16、PC协议提供一种进程间的交互通信机制,允许本地机器上的程序进程在远程系统中无缝地运行代码。,3. NetBIOS NetBIOS(Network Basic Input Output System,网络基本输入输出系统)是PC机网络中用得最为广泛的网络协议之一,大多数的局域网(LAN)产品,如Microsoft LAN Manager、Novell NetWare和Banqan Vines都支持NetBIOS。 “NetBIOS”现仍代表以下三方面含义: 网络通信开放系统互联(OSI)参考模型中的会话层。 用来在会话层和更高层之间传递数据和命令的协议。 由特定的程序设计接口组成的协议的实现。
17、4. DDE DDE(Dynamic Data Exchange,动态数据交换)是Microsoft Windows的一种基本功能。DDE允许Windows应用程序之间通过某种通用语言或某种协议交换文本数据和图像数据,某种通用语言或某种协议实质上指的是一系列特定的DDE函数。 应用程序间进行数据交换称为“会话”(Conversation),申请会话端叫客户(Client),响应申请端叫服务器(Server)。一旦客户与服务器间建立起DDE所需的数据链路就可自动进行数据交换。,4.3.3 简单网络管理协议(SNMP),SNMP(Simple Network Management Protocol
18、,简单网络管理协议)为网络管理系统提供了底层网络管理的框架。有了这个协议,允许通过使用管理工具(如Sun Net Manages或HP Open View)等管理工具远程管理域控制器、工作站计算机和网络设备。 1. SNMP命令 SNMP是一种无连接协议,无连接的意思是它不支持像Telnet或FTP这种专门的连接。通过使用请求报文和返回响应的方式,SNMP在管理代理和管理员之间传送信息。 SNMP协议提供了Set 、Get 和 Trap 这3种用于控制MIB对象的基本操作命令。 Set:是一个特权命令,可以通过它来改动设备的配置或控制设备的运转状态。 Get:从网络设备中获得管理信息的基本方式
19、。,Trap:其功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题发生了。 2. SNMP组成 一条SNMP报文由3个部分组成:版本域(version field)、分区域(community field)和SNMP协议数据单元域(SNMP protocol data unit field),数据包的长度不是固定的。 版本域:这个域用于说明现在使用的是哪个版本的SNMP协议。目前,SNMP v1是使用最广泛的SNMP协议,最新的版本是SNMP v2。 分区域:分区是基本的安全机制,用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。 协议数据单
20、元域:SNMPv1的PDU有5种类型,有些是报文请求(Request),有些则是响应(Response)。它们包括GetRequest、GetNextRequest、SetRequest、GetResponse及Trap 。,3. SNMP的主要优势SNMP协议的主要优势如下: 易于实现:相对于其他种类的网络管理体系或管理协议而言,SNMP易于实现。 使用免费:SNMP协议是开放的免费产品。 详实的文档支持:SNMP协议有很多详细的文档资料(如RFC及其他的一些文章、说明书等),网络业界对这个协议也有着较深入的理解,这些都是SNMP协议近一步发展和改进的基础。 适用面广:SNMP协议可用于控制
21、各种设备。比如说电话系统、环境控制设备,以及其他可接入网络且需要控制的设备等,这些非传统装备都可以使用SNMP协议。 正是由于有了上述这些特点,SNMP协议已经被认为是网络设备厂商、应用软件开发者及终端用户的首选管理协议。有关SNMP协议及其管理系统的详细介绍参见本系列丛书的网管员必读超级网管经验谈一书。,4.3.4 TCP/IP应用协议和服务,TCP/IP的应用层包括了许多应用协议,主要有Finger、FTP、RCP、RSH、Telnet、TFTP、NFS、DNS、DHCP、WINS等协议或服务。这些工具协议使得Windows系统用户使用非Microsoft系统计算机上(如UNIX及Linu
22、x系统计算机)的资源成为可能。 1. Finger(信息查询协议) Finger用于在指定系统上显示有关用户的信息,根据远程系统输出不同的变量。语法格式:finger -l usercomputer. 2Telnet (远程登录协议) Telnet协议用来登录到远程计算机上并进行信息访问,为远程登录协议。通过这个协议可以访问所有的数据库、联机游戏、对话服务及电子公告牌,如同与被访问的计算机在同一房间中工作一样,但只能进行些字符类操作和会话。目前也没一些非法程序所利用,进行一些黑客攻击。,Telnet命令的基本格式为:telnet hostname|P address,其中“hostname”可
23、以是局域网中的计算机名,也可以是互联网中的域名,同样“IP address”既可以是局域网IP地址,也可以是互联网等公网IP地址。 3. FTP (文件传输协议) FTP(File Transfer Protocol,文件传输协议)也是常见的一种应用型协议,是用来进行文件传输的。 基本语法格式:ftp -v -n -i -d -g -s:filename -a -w:windowsize computer 4. TFTP(小文件传输协议) TFTP (Trivial File Transfer Protocol,简单文件传输协议,或者小型文件传输协议)是一个传输文件的简单协议。语法格式:tft
24、p -i computer get | put source destination 5. RCP RCP(Remote Copy Protocol,远程复制协议)是在计算机和运行远程外壳端口监控程序(rshd)系统之间复制文件用的。rcp命令是一个连接命令,从计算机发出该命令时,也可以用于在两台运行rshd的计算机之间复制文件。 语法格式:rcp -a | -b -h -r source1 source2 sourceN destination,6. 电子邮件服务(E-mail) 电子邮件服务是因特网提供的最广泛服务,现在几乎每个上网的人都拥有至少一个邮件账户。通过电子邮件,人们可以与Int
25、ernet上的任何人交换信息。 7. Internet漫游服务(WWW服务) WWW服务(3W服务)是用得最多的一种服务,通过它只要用鼠标进行本地操作,就可以到达世界上的任何地方。由于WWW服务使用的是超文本链接(HTML),所以可以很方便地从一个信息页转换到另一个信息页。 8. 简单邮件传输协议(SMTP) SMTP是TCP/IP协议族的一个成员,专门用来发送电子邮件。与SMTP协议对应的协议就是POP(Post Office Protocol)协议(不属于TCP/IP协议),用来收取邮件。 9. 信息服务(Gopher) Gopher是帮助用户在Internet中搜索有用信息的导航器。用户
26、只需要关心浏览的内容,而不必关心具体的服务器。 10. 文件检索服务(Archie) 它是一个从整个Internet上的FTP服务器匿名获取文件的服务。Archie仅通过文件名进行检索,也属于比较旧的因特网协议,目前也基本上不被使用了。,4.3.3 TCP/IP协议诊断工具,这些诊断工具包括arp、hostname、ipconfig、nbstat、netstat、ping和route。它们可用来检测并恢复TCP/IP协议网络故障。 1. arp 该工具用来显示和修改“地址解析协议(ARP)”缓存中的项目。ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的以太网或令牌环物理地址。计
27、算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用,arp命令将显示帮助信息。语法格式:arp -a InetAddr -N IfaceAddr -g InetAddr -N IfaceAddr -d InetAddr IfaceAddr -s InetAddr EtherAddr IfaceAddr,2. Hostname 它用来显示计算机全名中的主机名称部分。语法很简单,仅是命令本身,为hostname,它可以接帮助参数“?”,用于在命令提示符下显示帮助信息。 3. ipconfig 这是实际网络管理中经常要用到的一个网络网络工具,使用它可显示所有当前的
28、TCP/IP网络配置值、刷新动态主机配置协议(DHCP)和域名系统(DNS)设置。使用不带参数的ipconfig可以显示所有适配器的IP地址、子网掩码及默认网关。该命令与在Windows 2000以前系统的Wincfg命令对应。 语法格式:ipconfig /all /renew Adapter /release Adapter /flushdns /displaydns /registerdns /showclassid Adapter /setclassid Adapter ClassID 4. netstat 显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4统
29、计信息(对于IP、ICMP、TCP和UDP协议)及IPv6统计信息。使用时如果不带参数,netstat显示活动的TCP连接。 语法格式:netstat -a -e -n -o -p Protocol -r -s Interval,5. ping ping是网络管理中最常用的一个工具,通过它可以检测出网络是否通畅,网络配置是否正确。它是用于检测网络连接性、可到达性和名称解析的疑难问题的主要TCP/IP命令。它是通过发送“网际消息控制协议(ICMP)”回响请求消息来验证与另一台TCP/IP计算机的IP级连接。回响应答消息的接收情况将和往返过程的次数一起显示出来。 语法格式:ping -t -a -
30、n Count -l Size -f -i TTL -v TOS -r Count -s Count -j HostList | -k HostList -w Timeout TargetName 6. route route命令在本地IP路由表中显示和修改条目。使用不带参数的route可以显示帮助。 语法格式:route -f -p Command Destination mask Netmask Gateway metric Metric if Interface 7. nslookup 该命令显示可用来诊断域名系统(DNS)基础结构的信息。使用此工具之前,应当先熟悉DNS的工作原理。只有
31、在已安装TCP/IP协议的情况下才可以使用nslookup命令行工具。语法格式:nslookup -SubCommand ComputerToFind| -Server,4.4 TCP协议,TCP(Transmission Control Protocol,舆控制协议)协议是TCP/IP协议的一个子协议,是属于OSI七层参考模型是的传输层协议,用定来控制数据通信中的数据传输。 4.4.1 TCP协议简介 TCP协议的作用主要是在计算机间可靠地交换传输数据包。TCP协议是面向连接的协议,它比较安全、稳定,但是效率不高,占用资源较多。因为TCP协议是面向连接的端到端的可靠协议,支持多种网络应用程序
32、,所以在网络发展的今天,它已成为事实上的网络协议标准。 TCP协议具有以下3种主要特征: TCP协议是面向连接的,在任何数据实施交换之前,首先要在两台计算机之间建立连接进程。 由于使用了序列号和返回通知,TCP协议使用户确信传输的可靠性。 TCP协议使用字节流通信号,这意味着数据被当做没有信息的字节序列来对待。,4.4.2 TCP协议的数据段格式,TCP协议中有两个重要术语,那就是“连接端”及“标记”。“连接端”是进行TCP连接的两端计算机,也称为“源节点”和“终节点”。一个连接由连接两端的套接字标识,本地的套接字可能和不同的外部套接字通信,这种通信是全双工的。IP地址和通信所使用端口的组合就
33、称做套接字(Socket),它代表一个TCP协议连接的一个连接端。为了获得TCP协议服务,必须在发送端计算机的一个端口上和接收端计算机的一个端口上建立连接。而“标记”在TCP协议包头中表示TCP协议的连接情况。一个TCP协议数据包包括一个TCP协议头,后面是“选项”和“数据”。,4.4.3 TCP协议的工作原理,TCP协议是一个面向连接的可靠传输协议,面向连接表示两个应用端在利用TCP协议传送数据前必须先建立TCP协议连接。 TCP协议的可靠性是通过“校验和”、 “定时器”、 “数据序号”和“应答”提供的。通过给每个发送的字节分配一个序号,接收端接收到数据后发送应答来确保数据的可靠传输。数据序
34、号用来保证数据的顺序,剔除重复的数据。在一个TCP协议会话中,有两个数据流(每个连接端从另外一端接收数据,同时向对方发送数据),因此在建立连接时,必须要为每一个数据流分配ISN(初始序号)。ISN是建立一个TCP连接时的开始号,用于提供通信顺序并确保多个包传输时无数据丢失。在连接过程中交换初始号可以确保在以后出现问题时恢复丢失的数据。 详细的TCP三次握手协商过程参见书中介绍。,4.5 IP协议,IP(Internet Protocol,因特网协议)协议是属于OSI七层参考模型中的网络层协议,全面应用于局域网和广域网通信。它用来将多个包交换网络连接起来,在源地址和目的地址之间传送数据报。它还提
35、供对数据大小的重新组装功能,以适应不同网络对包大小的要求。但IP协议不提供可靠的传输服务,它不提供端到端的或(路由)节点到(路由)节点的确认。对数据没有差错控制,只使用报头的校验码,不提供重发和流量控制。 IP协议可实现两个基本功能:寻址和分段。IP协议可以根据数据报报头中包括的目的地址将数据报传送到目的地址。另外,IP协议使用4个关键技术提供服务:服务类型、生存时间、选项和报头校验码。具体参见书中介绍。,4.6 IPX/SPX协议,IPX/SPX(Internet Packet Exchange/Sequences Packet Exchange,网际包交换/顺序包交换)协议也是属于OSI七
36、层参考模型中的网络层协议,不过它是专门适用于Novell公司为的NetWare网络系统的。 4.6.1 IPX/SPX协议简介 IPX/SPX工作方式简单,不需要任何配置,可通过“网络地址”来识别自己的身份。 Novell网络中的网络地址由两部分组成:标明物理网段的“网络ID”和标明特殊设备的“节点ID”。其中网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号(网卡卡号)。所有网络ID和节点ID都是一个独一无二的“内部IPX地址”。正是由于网络地址的惟一性,才使IPX/SPX具有较强的路由功能。,IPX协议是因特网络分组交换协议,对应于OSI的网络层。IPX具有低开销、
37、高性能的特点,主要用于局域网中。IPX提供分组寻址和选择路由功能,负责从发送者向接收者传送消息包,这些包也包括路由包。它支持所有的局域网拓朴结构,提供了因特网内信息传输的透明性和一致性。但它不能保证传递可靠实现,即不保证可靠到达。 SPX协议是顺序分组交换协议,对应于OSI的传输层。它通过对包传送的确认来监视包传送的过程,同时也提供差错控制能力。如果包内容不可用,可以负责包的重新发送操作。它是面向连接通信方式工作的,向上提供简单却功能很强的服务。SPX协议提供了保证可靠传递的接口,以使顺序分组信息流可靠地交换,所以SPX具有一致性和顺序分组传递的特点。 在以前的Windows NT系统中提供了
38、两个IPX/SPX的兼容协议:“NWLink IPX/SPX兼容协议”和“NWLink NetBIOS”,两者统称为“NWLink通信协议”。NWLink协议是Novell公司的IPX/SPX协议在微软网络中的实现,它在继承IPX/SPX协议优点的同时,更适应了微软的操作系统和网络环境的要求。,4.6.2 IP与IPX的比较,IP协议主要被微软公司的Windows系统所采用,而IPX协议则是Novell公司专为其Netware操作系统开发的。 从地址管理员角度上来看,IPX实际上是自动配置的,而IP需要人为来配置。但是TCP/IP协议在性能上的优势把这种人工配置的麻烦抵消了。 IP协议使用4位
39、地址定位设备,它的格式就是这种点分十进制数的格式:202.117.100.2;而IPX协议使用10位地址(如10510028:0080A044880F. 来进行设备定位。 IPX和IP协议都是可以路由的,在路由方面两者则有很大的不同。IPX协议通过广播确定最近的路由器;而IP协议却没有这个机制,就是有也没有被广泛应用。 IPX和IP协议都不是面向连接的,没有什么握手信号,也不能保证接收到包的顺序是正确的。,4.7 NetBEUI协议,NetBEUI(NetBIOS Extend User Interface,用户扩展接口)是属于OSI数据链路层上的协议,最初是由IBM于1985年公司开发的。N
40、etBEUI协议是一种体积小、效率高、速度快的通信协议,同时它也是微软最为喜爱的一种协议。它主要适用于早期的微软操作系统(如DOS、LAN Manager、Windows 4.x和Windows for Workgroup),在Windows 9X/NT中仍把它视为固有默认协议,但新的Windows 2000/XP/2003系统已不再依靠这一协议,NetBEUI也不再是这些系统的固有协议。 人们常会混淆NetBIOS和NetBEUI。其实NetBIOS只能算是一个网络应用程序的接口规范,是NetBEUI的基础,它不具有严格的通信协议功能。而NetBEUI则是建立在NetBIOS基础之上的一个网
41、络传输协议。,4.8 HTTP协议,HTTP(Hypertext Transfer Protocol,超文本传输协议)是OSI应用层上的协议,就是我们平常所互联网所需的Web协议,没有它,我们就不能在浏览器中浏览到网站的内容。 4.8.1 HTTP协议简介 HTTP是应用层协议,由于其简捷、快速的方式,适用于分布式和合作式超媒体信息系统。自1990年起, HTTP协议就已经被广泛应用于WWW(俗称“3W服务”)全球信息服务系统。HTTP是一个用于在客户端和服务器间请求和应答的协议。 HTTP协议具有以下主要特点是:支持“客户/服务器”(C/S)模式、简单快捷、灵活、无连接和无状态。,4.8.2
42、 HTTP请求头和应答头,在HTTP协议中有两种消息头,那就是“请求头”和“应答头”,以指明更多的请求或应答附加消息。 1. HTTP请求头 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。而在请求行后面可能还跟着一些附加的行,其中包括更多的就是所谓的“请求头”(Request Header)。如有必要,客户程序还可以选择发送其他的请求头。 2. HTTP应答头 Web服务器的HTTP应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档。 说明:具体的HTTP请求头和应答头参见书中介绍。,4.8.3 HTTP协议工作原理,
43、HTTP协议是基于请求/响应模式。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息。 1. HTTP连接的建立 具体的连接步骤参见书本介绍。在服务器的HTTP连接建立中,除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。当HTTP客户在浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。 2. UR
44、L格式 HTTP协议的URL基本格式类似http:/。,4.8.4 HTTP报文格式,HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。HTTP请求报文格式如下图所示。,在这格式中的“请求行”部分是以方法字段开始,后面分别是URL字段和HTTP协议版本字段,并以CRLF结尾。SP是分隔符。除了在最后的CRLF序列中CF和LF是必需的之外,其他都可以不要。下图是HTTP响应报文格式。,4
45、.9 UDP协议,UDP协议(User Datagram Protocol,用户数据报文协议)与TCP协议一样也是OSI传输层上的一个通信协议。不过UDP协议是一个面向无连接的协议(TCP是向面连接的协议)。一个UDP连接的建立,不必象TCP协议那样需要服务器端侦听,也不需要有客户机端请求连接和服务器端建立连接后双方才能通信。 4.9.1 UDP协议概述 用户数据报协议(UDP)是一个简单的面向数据报的传输层协议,IETF RFC 768是UDP的正式规范。在TCP/IP模型中,UDP为网络层(network layer)以下和应用层(application layer)以上提供了一个简单的接
46、口。 UDP只提供数据的不可靠交付,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。,UDP首部字段由4个部分组成,其中两个是可选的。各16位的源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以源端口是可选的,如果源端口不用,那么置为零。在目的端口后面是长度固定的以字节为单位的长度字段,用来指定UDP数据报包括数据部分的长度。 由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。由于UDP协议缺乏拥塞避免和控制机制,需要基于网络的机制来减小因失
47、控和高速UDP流量负荷而导致的拥塞崩溃效应。 UDP协议只在IP的数据报服务之上增加了很少的功能,这就是端口的功能(有了端口,运输层就能进行复用和分用)和差错检测的功能。另外,UDP协议应用程序可以是客户机,也可以是服务器程序,不必向TCP协议应用程序那样必须分别建立客户机程序和服务器程序。在远程控制软件中,如果在局域网内部传输屏幕信息,则使用UDP协议比较容易实现。但UDP协议不提供可靠性,它的可靠性是交给其他网络设备来解决。同时用UDP协议来传输的数据一般较小,它需要IP协议来为它对数据进行分段。理论上IP协议数据报的最大长度为65535个字节 。,4.9.2 UDP数据报格式,UDP协议
48、数据报格式如下图所示。,在这个数据报格式中,源端口是可选域,当其有意义时,指的是发送应用程序的UDP端口。如果不使用它,则在此域中填0。目的端口在有特定的目的网络地址时有意义,指目标应用程序的UDP端口。长度指的是此用户数据报长度的八进制表示(这表明最小的数据报长度是8)。校验和同样是一种简单的数学运算,用于检查UDP消息中的位级错误。是对IP头、UDP头和数据中信息包头的数位取反之和,再取反得到的。UDP协议包不具备TCP协议包复杂的可靠性与控制机制,没有“序列”和“确认”两个字段。,4.10 PPP协议,PPP(Point to Point Protocol,点对点协议)与NetBUEUI
49、协议一样,也是OSI数据链路层上的协议。它是为在两个对等实体间传输数据包,建立简单连接而设计的,主要用于广域网的连接。如所用的电缆直接连接方式和电话拨号方式都采用这种协议进行广域网通信。这种连接提供了同时的双向全双工操作,并且假定数据包是按顺序投递的。 4.10.1 PPP协议简介 PPP协议具有处理错误检测;支持多协议环境;允许在连接时刻协商IP地址;允许身份验证等特性,提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。PPP协议是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。,