您的位置:首页 > 理论基础 > 计算机网络

TCP/IP   原理

2008-11-05 11:14 281 查看
第一章 TCP/IP 概述........................................................................................................................................... 3
TCP/IP的特点.................................................................................................................................................... 3
数据通信模型...................................................................................................................................................... 3
TCP/IP协议结构................................................................................................................................................ 4
网络访问层(Network Access Layer)......................................................................................................... 5
网间层(Internet Layer).............................................................................................................................. 5
传输层(Transport Layer)............................................................................................................................ 7
应用层(Application Layer)...................................................................................................................... 10
第二章 数据传输................................................................................................................................................ 10
寻址、路由选择和多路复用.......................................................................................................................... 11
Internet的路由结构....................................................................................................................................... 13
路由器................................................................................................................................................................. 14
路由表(Routing Table).............................................................................................................................. 14
地址转换............................................................................................................................................................. 15
协议、端口和软插口....................................................................................................................................... 15

第一章TCP/IP 概述

TCP/IP是指一整套数据通信协议, 其名字是由这些协议中的两个协议组成的,即传输控制协议(Transmission Control Protocol­ ­——TCP)和网间协议(Internet Protocol——IP)。虽然还有很多其他协议,但是TCP和IP显然是两个最重要的协议。

TCP/IP的特点

TCP/IP协议有一些重要的特点,以确保在特定的时刻能满足一种重要的需求,即世界范围的数据通信。其特点包括:

·开放式协议标准。可免费使用,且与具体的计算机硬件或操作系统无关。由于它受
到如此广泛的支持,因而即使不通过Internet 通信,利用TCP/IP来统一不同的硬件
和软件也是很理想的。
·与物理网络硬件无关。这就允许TCP/IP可以将很多不同类型的网络集成在一起,它
可以适用于以太网、令牌环网、拨号线、X.25网络以及任何其它类型的物理传输介
质。
·通用的寻址方案。该方案允许任何TCP/IP设备唯一的寻址整个网络中的任何其他设
备,该网络甚至可以象全球Internet那样大。
·各种标准化的高级协议。可广泛而持续地提供多种用户服务。

数据通信模型

虽然OSI模型非常有用,但TCP/IP协议并不完全与它的结构相匹配。因此,在讨论TCP/IP时,我们按下列方法使用该模型中的各层:

应用层 应用层是网络中与用户访问有关的协议层。本教材中所说的TCP/IP应
用程序是在传输层以上发生的任何网络进程。
表示层 在OSI中,这一层可提供标准的数据表示例程,而在TCP/IP中,这种
功能是在应用层内处理的。
会话层 OSI的会话层管理协作应用程序间的会话(连接),在TCP/IP中,这
一功能基本上是在传输层中实现的,是使用软插口(socket)和端口
(port)来说明协作应用程序间通信的路径。
传输层 在OSI参考模型中,传输层可以确保接收方正确的接收到所发出的数
据。在TCP/IP中,这一功能是由传输控制协议(TCP)完成的。然而,
TCP/IP还提供了第二种传输层服务,即用户的数据报协议(UDP),
它并不执行端对端的可靠性检查。
网络层 网间协议(IP)通常可看作是TCP/IP的网络层,它可以将上层与基本
网络隔离开,并处理寻址和数据传输功能。
数据链路层 在基本的物理网络上可靠的传输数据是由数据链路层完成的。TCP/IP
很少创建数据链路层中的协议,与数据链路层有关的大多数RFC只讨
论IP如何使用现有的数据链路协议。
物理层 TCP/IP不定义各种物理标准,它只使用现有的标准。

TCP/IP协议结构

在描述TCP/IP时,一般只定义如图所示的4层模型:应用层、主机对主机传输层、网络层和网络访问层。



TCP/IP协议结构中的各层

在TCP的应用层中,将数据称为“数据流(stream)”;而在用户数据报协议(UDP)的应用层中,则将数据称为 “报文(message)”。TCP将它的数据结构称作“段(segment)”,而UDP将它的数据结构称作“分组(packet)”;网间层则将所有数据看作是一个块,称为“数据报(datagram)”。TCP/IP使用很多种不同类型的底层网络,每一种都用不同的术语定义它传输的数据,大多数网络将传输的数据称为“分组”或“帧(frame)”.

数据结构

网络访问层(Network Access Layer)

网络访问层(Network Access Layer)是TCP/IP协议结构的最低层,该层中的协议提供了一种数据传送的方法,使得系统可以通过直接连接的网络将数据传送到其它设备,并定义了如何利用网络来传送数据报。网络访问层协议与较高层协议不一样,它必须知道底层网络的各种细节(如它的分组结构、寻址方式等),以便准确的格式化传输的数据,使其遵守网络规定。TCP/IP网络访问层可以包括OSI参考模型中下三层(网络层、数据链路层和物理层)的全部功能。
网络访问协议种类繁多,每一个协议都对应一种物理网络标准。
该层执行的功能包括将IP报文封装成被网络传输的帧,并将IP地址映射为网络使用的物理地址。
在UNIX中实施时,这一层的协议通常以设备驱动程序和有关程序的组合形式出现。这种用网络设备名称标识的模块,通常用来封装数据并传送给网络,而其它程序则执行相关功能,如地址映射。

网间层(Internet Layer)

网间协议IP是TCP/IP的核心,也是网间层中最重要的协议。IP可提供基本的分组传输服务,这是构建TCP/IP网络的基础。所有的TCP/IP数据都流经IP,(不管是出去的还是进来的)与它的最终目的地无关。

网间协议([/b]Internet Protocol­[/b]——[/b]IP[/b])[/b][/b]
网间协议的功能包括:
1.定义数据报,它是在Internet上的基本传输单元。
2.定义网间寻址方案。
3.在网络访问层和主机对主机传输层之间传输数据。
4.为数据报选择至远程主机的路由。
5.执行数据报的分解和重组。

IP是一个“无连接协议”,是要依靠其它层的协议提供错误检测和错误恢复。有时将该网间协议称为“不可行协议”,因为它并不包含错误检测和恢复的程序代码。这并不是说IP协议是不能信赖的,恰恰相反,它可以正确地将数据传送到已连接的网络,不过它并不检验数据是否被正确地接收。必要是,TCP/IP结构中其它层的协议可以提供这一检验功能。

数据报(Datagram[/b])[/b]
[/b]
数据报(datagram)是网间协议定义的一种分组格式。如图表示一个IP 数据报,数据
报中前5个或6个32位字为控制信息,称为报头。在缺省形式下,报头的长度是5个字,第6个字是可选的。由于报头的长度是可变的,因而它包含一个称为“Internet报头长度(IHL )”的字段,以字为单位指出报头的长度。报头包含着传输该分组所需的全部信息。

    31            16 15            0

版本号 IHL   服务类型          总长度     
      识别码         标志      片偏置量
  寿命     协议      报头校验和
            源地址
        目的地址
选项            填空
数据区
  

                                   报
                                   头
                                  

             IP 数据报的格式

网间协议通过检查报头第5个字中的目的地址(Destinaation Address)传送数据报,该目的地址是一个标准的32位IP地址,它可以标识目的网络和在该网络上的特定主机。如果目的地址是本地网络中一个主机的地址,该分组就直接伟送给目的地;如果目的地址不在本地网络中,该分组就被传送到网关(gateway)再进行传送。网关是在不同的物理网络之间交换分组报文的设备。确定使用哪个网关称为路由选择(routing),IP为每个单独的分组作出路由选择决定。

数据报的路由选择[/b]

Internet网关通常(或许更精确地说)是指IP路由器(router),因为它使用网间协议在网络之间选择分组的路由。在传统的TCP/IP术语中,只有两种类型的网络设备,即网关(gatway)和主机(host)。网关可以在网络之间转发分组报文,主机却不能。然而,如果一台主机连接多个网络(称为多地址主机),则就可以在网络间转发分组报文。当一个多地址主机转发分组报文时,它的作用与其它任何网关一样,可以看成是一个网关。目前的数据通信术语有时将网关与路由器区别开,术语“网关”和“IP路由器”是可以互换的。

数据报的拆分[/b]
[/b]
每一种类型的网络都有一个“最大传输单元(MTU)”,即网络上可以传输的最大分组。如果从一个网络上接收到的数据报大于另一个网络的最大传输单元,就必须将它分成较小的“块”才能传输,这一过程称为“拆分(fragmentation)”。如以太网与X.25网络在物理上也是不同的。当一个较大的以太网分组在X.25网络上传输之前,IP必须将它分割成较小的分组。

传送数据报到传输层[/b]
[/b]
当IP接收到一个寻址本地主机的数据报时,它必须将该数据报中的数据部分传送给合适的传输层协议,这是利用数据报报头中第3个字内的“协议号(Protocol Number)”完成的。每个传输层协议都有一个唯一的协议号,用来在IP中标识它自己。

网间控制报文协议[/b][/b]
[/b]
网间控制报文协议(Internet Control Message Protocol –TCMP)是IP的一个不可分割的部分。该协议是网间层的一部分,它使用IP数据报传输设施去发送报文。它发送的报文可以为TCP/IP执行下列控制、错误报告、信息等功能:
流控制 当数据报到达的速度太快而无法处理时,目的主机或中间网关
就会发送一个“ICMP源站抑制报文(ICMP Source Quench
Message)”块给发送者,以通知源站暂时停止发送报评议文。
检测不可达的目地 当目的地不可到达时,检测到该问题的系统就发送一个“目的
地不可达报文(Destination Unreachable Message)”给数
据报的源站。如果不可达的目的地是一个网络或主机,就由中
间网关发送该报文;如果是一个不可达的端口,则由目的地主
机发送该报文。
重定向路由 网关发送“ICMP重定向报文(ICMP Redirect Message)”
通知主机使用另一个网关,这大概是因为另一个网关更合适。
只有当源主机与这二个网关都在同一个网络上时才能使用这一
报文。
检查远程主机 一台主机可以发送“ICMP回送报文(ICMP Echo Message)”
以了解远程系统的网间协议是否正在工作。当系统接收到该回
送报文时,便将同样的分组报文发送回源主机。UNIX的ping
命令就使用这一报文。

传输层(Transport Layer)

传输层中两个最重要的协议是传输控制协议(TCP)和用户数据报协议(UDP)。TCP利用端对端错误检测与纠正功能提供可靠的数据传输服务;而UDP提供低开销的无连接数据报传输服务,二者都可以在应用层和网间层之间传输数据。对于特定的应用程序,程序设计者可以选择最适合的服务。

用户数据报协议[/b]
用户数据报协议(User Datagram Protocol——UDP)是一个不可靠的无链接数据报协议,其格式如图:

0 15 16 31

源站端口目的站端口
长度校验和
数据区
UDP的报文格式

选用UDP作为一种数据传输服务的原因有好几个,如果传输的数据量很少,那末为建立连接和确保可靠传输而花费的开销可能比重新传输全部数据的开销还高。在此情况下,UDP就是传输层协议最好的选择。
使用“查询——响应”方式的应用程序也非常适宜使用UDP,其响应可以用作对查询的肯定确认,如果在一定的时间内没有收到响应,应用程序便发出另一个查询。
有些应用程序可提供自己的技术去确保可靠的数据传输,而不需要传输层协议的服务。

传输控制协议(TCP[/b])[/b]

TCP是一种可靠的、面向连接的、字节流协议。
TCP提供的可靠性是利用一种称为“重传肯定确认(Positive Acknowledgment With Retranmission——PAR)”机制来实现的。换句话说,除非一个利用PAR的系统接收到从远端系统发来的肯定确认,否则就重发原数据。在相互协作的TCP模块之间交换的数据单元称为“段(Segment)”如图:

    31            16 15            0

     原端口           目的端口
            序列号
            确认号
偏移   保留   标志        窗口
校验和           紧急指针
任选            填空
数据区
  

                                   报
                                   头
                                  

             TCP 的段格式

每一段包含一个校验值,接收方用它来验证数据是否遭到破坏。如果接受到的数据段没有遭到破坏,接收者就发送一个肯定确认应答给发送者;如果遭到破坏,接收者就废弃该段。过了一段时间后,发送端TCP就重新发送没有受到肯定确认的任何段。
TCP是面向连接的,它在两个通信主机之间建立一个逻辑的端对端连接。在传输数据之前,建立对话的两个端点之间交换称为握手的控制信息。TCP通过在段头第4个字的标志字段中设置相应的位来表示一个段的控制功能。
TCP有三个段要交换,故称为“三段试握手”。如图:

主机A 主机B

三段试握手

主机A通过将一个具有“同步序列号(SYN)”的段发送给主机B而开始连接,该段告诉主机B:主机A希望建立连接并且使用哪个序列号作为主机A的段的起始号(序列号可用来保持数据的正确顺序);主机B用一个带有“确认应答(ACK)”和“同步序列号(SYN)”位的段响应主机A,以确认收到了A的段,并通知A它将从哪个序列号开始;最后,A发送一个段,确认收到了B的段,并开始传送第一个实际数据。

当协作双方的模块结束数据传输时,它们就利用包含“无数据发送(FIN)”位的段来交换三段试握手信息,以关闭连接。
·TCP发送的是连续的字节流而不是单独的分组。
因此要确保发送和接受的顺序,即用TCP的段头中的“序列号”和“确认号”字
段来保持这个顺序。
· 每个系统可选择任意“号”作为起点。但通常情况下ISN总是0。
· 数据中的每个字节是从ISN开始顺序编号的,因而被发送数据的第一个实际字节的
顺序号为ISN+1(通常为1)。
· 确认段(ACK)执行两种功能:肯定确认和流控制。
确认:
是告诉发送者已经接收了多少数据和接收方还可以接收多少数据。确认号是
远端接收到的最后一个字节的顺序号。该标准并不要求每个分组都要单独确
认,确认号就是对在该号之前的所有字节的肯定确认。
· 窗口字段:含有远端有能力接收的字节数。如图:

窗口6000

已接收的数据
                   当前段

1 1001 2001 3001 4001 5001 6001 7001

       起始序号   确认号 序列号4001
0 2000

TCP数据流

TCP还负责将从IP接收到的数据传送给合适的应用程序。接收该数据的应用程序是用一个16位的“端口号”标识的。源端口和目的端口是包含在段头的第一个字节中,使数据正确地传进和传出应用层,这是传输层的一个重要服务。

应用层(Application Layer)

该层中包含了使用传输层协议去传输数据的所有协议,应用层协议很多,一些著名的应用层协议有:
·TELNET 这是网络终端协议,可通过网络提供远程登陆。
·FTP 这是文件传输协议,可用于交互式文件传输。
·SMTP 这是简单邮件传输协议,可用于传送电子邮件。
此外还有:
·域名服务(Domain Name Service——DNS):可以将IP地址映射成赋予网络设备的
名字。
·路由信息协议(Routing Information Protocol——RIP):路由选择是TCP/IP的工
作核心,网络设备使用RIP去交换路由选择信息。
·网络文件系统(Network File System——NFS):该协议允许文件被网络上的各种
主机共享。

综上所述,FTP、TELNET、和SMTP基本上是依赖于TCP的,而NFS、DNS和RIP则基本上依赖于UDP。一些应用程序型协议,如外部网关协议(Exterior Gateway Protocol——EGP),它是另一个路由协议,它们不使用传输层服务,而直接使用IP服务。

第二章 数据传输

我们已经了解到TCP/IP是一个四层结构。本章将更详细地探讨数据是如何在网络的协议之间和系统之间传送的,以及如何利用地址路由将数据送到它的目的地、如何为了构建子网而在本地重定义寻址规则。

寻址、路由选择和多路复用

为了在二个Internet主机之间传送数据,就必须通过网络将数据传送给相应的主机,并在该主机内传送给相应的用户或进程。TCP/IP利用三种方法来完成这些任务:
寻址(Addressing) IP地址可以唯一地标识Internet中的每一台主机,它可
以将数据传送到相应的主机。
路由选择(Routing) 网关可以将数据传送到相应的网络。
多路复用(Multiplexing) 协议和端口号可以将数据传送到主机内相应的软件模
块。
其中的每一个功能(在主机之间寻址、在网络之间选择路由和在层间多路复用)对于通过 Internet在两个协作应用程序间传送数据都是必需的。

IP[/b]地址[/b]
[/b]
网间协议(IP)以数据报的形式在主机之间传输数据,每个数据报传送到一个地址,该地址包含在该数据报报头的目的地址(第5个字)中。目的地址是一个32位的IP地址,它包含着足够的信息以唯一地标识一个网络和该网络中的特定主机。
一个IP地址由一个网络部分和一个主机部分组成,但在每个IP地址中它们的格式是不同的。用来标识网络和主机的地址位数将根据地址的“类型”而变,A类、B类和C类是三个主要的地址类型。通过检查一个地址的前几位,IP软件很快就可以确定地址的类别及其结构。IP遵循以下规则确定地址的类别:
·如果IP地址的第一位是0,它就是A类网络的地址。A类地址的第1位标识其地址
类别,接着的7位标识其网络。最后的24位标识主机。A类网络的编号小于128,
但每个A类网络可以包含数百万台主机。
·如果该地址的前2位是10,它就是B类网络地址。在B类地址中,前2位标识类,
接着的14位标识网络,最后16位标识主机。可以有数千个B类网络编号,每个
B类网络可以包含数千台主机。
·如果该地址的前3位是110,它就是C类网络地址。在C类地址中,前3位是类
标识符,接着的21位是网络地址,最后8位标识主机。有数百万个C类网络编号,
而每个C类网络包括的主机数量少于254台。
·如果该地址的前3位是111,它就是一个专门保留的地址。这类地址有时称为D
类地址,实际上它并不指向特定的网络,目前这一范围内的编号是赋予广播地址。
广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机,这与共享
同一网络的一组计算机恰好相反。

IP地址通常写成用点(英语句号)分隔开的4个十进制数,其中每一部分的数字值在0到255(一个字节可表达的十进制值)之间。因为标识类的位和网络地址的位是连在一起的,因而我们可以把IP地址看成是由所有网络地址字节和所有主机地址字节两部分组成。第1个字节的值的含义是:

·如果值小于128,则表示A类地址;其第1个字节就是网络号,紧接着的三个字
节是主机地址。
·值在128到191之间,表示B类地址;前二个字节标识网络,后二个字节标识
主机。
·值在192到223之间,表示C类地址;前三个字节是网络地址,最后一个字节
是主机号。
·值大于223,表示该地址是保留的,我们可以不管保留的地址。

并不是所有的网络地址或主机地址都是可用的:
·第一个字节大于223的地址都是保留的。
·在A类地址中,由两个地址0和127也是留作专用地址,网络0是“缺省路由”,
网络127是“回送地址”。缺省路由用来简化IP必须处理的路由选择信息,回送
地址由于允许本地主机与远程主机以同样的方式寻址而简化了网络应用程序。在配
置主机时使用这些专用网络地址。
·在所有的网络中主机号0和255也是保留的。所有主机位都置成0的IP地址用以
标识网络本身。主机号为0的IP地址是广播地址,即发送到该地址的数据传送到网
络上的每一台主机。
·由于合法IP地址的缺乏,设置了一定的保留地址,这些地址将决不被正式的分配给
任何人,而且决不应该被使用在自己网络的外部机构。(即Internet网上)
如:A类网10
B类网172.16直到172.31
C类网192.168.0直到192.168.255

一般将IP地址称为主机地址,但实际上IP地址是赋予网络接口的并不是赋予计算机系统的。
IP使用地址的网络部分为数据报在网络之间选择路由。当数据报到达目的网络是它的全部地址(包括主机信息)用来进行最终的传输。

子网[/b]
[/b]
将主机地址位用作附加的网络地址位,就可以局部地修改IP地址的标准结构。其实质就是移动网络地址位和主机地址之间的“分解线”,从而创建附加的网络,但却减少了每个网络的主机数量。这种新分配的网络位就可在一个大型网络内定义一个网络,称为子网(subnet)。
为了解决柘朴上的或组织上的问题,一些组织往往决定组建子网。构建子网可以分散对主机寻址的管理。
建立子网还可解决硬件差异和距离限制问题。IP路由器可以将不同的物理网络连接在一起,但这只有当每个物理网络具有唯一的网络地址时才可以。构建子网则将一个单独的网络地址分成很多唯一的子网地址,因此每个物理网络可以具有自己唯一的地址。
在IP地址上使用一个位掩码(即子网掩码——subnet mask)就可以定义一个子网。如果掩码位是1,那么其地址中等价位就解释成一个网络位;如果掩码位是0,则该位就属于主机地址部分。子网只能在本地识别,对于Internet的其它部分,其地址仍然被看成是标准的IP地址。
例如,与标准B类地址相关的子网掩码是255.255.0.0。最通用的子网掩码是通过一个附加字节来扩充一个B类地址的网络部分,这样一来该子网就是255.255.255.0。前三个字节的所有位都是1,而最后一个字节的所有位都是0;前二个字节定义B类网络,第三个字节定义子网地址,第四个字节定义子网上的主机。
很多网络管理员喜欢使用面向字节的掩码,因为易于阅读和理解。然而,不要求都以字节边界来定义子网,子网掩码可以面向位,从而就能适用于任何地址类。例如,利用掩码255.255.255.192,一个小型单位就可将C类地址分成4个子网。这个掩码将一个C类地址的第四个字节的前二个位定义为该地址的子网部分。同一个掩码如果用于B类地址,就可构建1000多个子网,因为有10个位,包括前三个字节的全部和第四字节的2位,都用来定义子网。如下表可说明了基于不同网络地址的各种子网掩码的作用。

[align=center]子网掩码的作用[/align]

[align=center]IP地址[/align][align=center]子网掩码[/align][align=center]说 明[/align]
128.66.12.1255.255.255.0子网128.66.12.0上的主机1
130.97.16.132255.255.255.192子网130.97.16.128上的主机4
192.178.16.66255.255.255.192.子网192.178.16.64上的主机2
132.90.132.5255.255.240.0子网132.90.128.0上的主机4.5
18.20.16.91255.255.0.0子网18.20.0.0上的主机16.91

Internet的路由结构

现在的路由选择模型是以各自治系统的相互平等为基础的,称为路由域(Routing domain)。
注:自治系统AS,是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。

路由域使用边界网关协议(BGP)或外部网关协议(EGP)来与其它域交换路由信息,每个路由域各自处理从其它域接收来的信息。
这种结构的特点是扩充性较好。
如图:用三个相交的圆表示这一模型,每个圆就是一个路由域,其重叠区就是边界区,路由信息就在这里共享。这些域共享路由信息,但并不依靠任何一个系统去提供所有的路由选择信息。无论路由信息是如何得来的,它最终总会到达你的本地网关,IP以此来决定路由。

路由选择域

路由器

TCP/IP的开放性为各网络间的信息集成提供了可能。但对于采用不同技术的各个网络,如何在硬件上将它们连接起来是实现TCP/IP的基本保障。路由器在网络互联上起着至关重要的作用,通过路由器设备可以把不同的网络连接成一个范围更大的网络。
路由器是一种比较成熟的网络互联技术。它不仅能够很好的实现路由、协议转换功能,而且在网络安全、网络管理方面也起者重要的作用。

主要功能:(1)连接不同的网络
(2)协议转换和路由选择功能
(3)网络管理和安全

路由表(Routing Table)

网关要在网络之间为数据选择路由,其它所有的网络设备、主机也和网关一样必须作出路由选择的决定。主机选择路由的策略是:
·如果目的主机在本地网络上,就将数据传给目的主机。
·如果目的主机在远程网络上,就将数据转发给本地网关。
IP模块根据IP地址的高位来确定目的IP地址的网络部分。如果目的网络是本地网络,就可在目的地址上使用本地子网掩码。
确定目的网络后,IP模块就在本地路由表中查找该网络,各分组报文就流向路由表所指定的目的地。路由表可由系统管理员或路由协议建立。IP的路由选择策略只是简单的查表过程。

利用netstat –nr命令可显示路由表的内容。

例如:
mail $ netstat –nr[/b]
[/b]
[/b]
Routing tables
Destination Gateway Flags Refcnt Use Interface

127.0.0.1 127.0.0.1 UH 1 298 lo0
default 128.66.12.1 UG 2 50360 le0
128.66.12.0 128.66.12.2 U 40 111379 le0
128.66.2.0 128.66.12.3 UG 4 1179 le0

·表的第一项是用于本地主机的回送路由,这一项在每个主机路由表中都有。
H 表示为主机;G 表示为网关
·default-缺省路由。该项所指定的网关为缺省网关,即该表中没有目的网络的专有
落由的,就使用此缺省网关。
注:路由表中的所有网关都必须在与本地系统直接连接的网络上。
·路由表并不包含端对端路由,一个路由只能沿着到达目的网络的路径指向下一个网
关,称为下一跳。主机依靠本地网关传输数据,而网关依靠其它网关传输数据。

地址转换

IP地址和路由表将数据报引向一个特定的物理网络,但是当数据通过网络传输时,必须遵从该网络使用的物理层协议。作为TCP/IP网络底层的物理网并不懂得IP寻址,它有它自己的寻址方案,有多少种物理网络就有多少种寻址方案。网络访问协议的一个任务就是将IP地址映射为物理网络地址。
IP地址与以太网地址之间的关系就是这种网络访问层功能的最普通例子,执行这一功能的协议是地址转换协议(ARP)。
ARP软件维护着一张IP地址和以太网地址的转换表,它是动态构建的。当ARP 接收到转换IP地址的请求时,就它的表中查看该地址,如果找到该地址,就将其以太网地址返回给请求软件;如果在该表中找不到该地址,APR 就发出一个广播分组报文给以太网上的每人主机。该分组报文内包含着需要转换成以太网地址的IP地址,如果一个接收主机识别出该IP地址就是它自己,便立即将它的以太网地址发回请求主机,这一响应内容随即存储在该APR表中。
Arp命令可显示arp表的内容。
例如:almond% arp peanut
peanut (128.66.12.2) at 8:0:20:0:e:c8
显示主机peanut的物理地址。

利用arp –a命令可显示整个ARP表的内容。
注:ARP表是由ARP协议自动建立的。

协议、端口和软插口

一旦数据在网络上传送并到达一台特定的主机,就必须将它交给相应的用户或进程。由于数据在TCP/IP的各层之间上下传送,因此就需要一个机构能将数据传送到每一层的相应协议。系统必须能够将来自多个应用程序的数据组合到少数几个传输协议中,再从这些传输协议传给网间协议。为此,IP使用协议号去标识传输协议,而传输协议使用端口号去标识应用程序。

协议号[/b]
协议号是数据报报头的第三个字中的一个字节,其值标识IP上必须传送数据的那一层协议。
在UNIX系统中,协议号定义在/etc/protocols文件中,它是一个简单的表格,含有协议名及其协议号。例如:
%cat /etc/protocols
ip 0 IP
icmp 1 ICMP
tcp 3 TCP
udp 17 UDP

这个表的含义是,当一个数据报到达,并且它的目的地址与本地 IP地址符合时,IP层就知道必须将该数据报传送到它上面的一个传输层协议。为了决定哪个协议接收该数据报,IP就查看该数据报的协议号。利用此表可以看出,如果协议号是6,IP就将该数据报传送给TCP;如果是17,IP就将它传送给UDP。

端口号[/b]

IP将进来的数据发送给传输协议后,该传输协议就将它传送到相应的应用程序进程中。应用程序的进程(又称网络服务)是用端口号标识的,它是一个16位的值。标识数据发送进程的“源端口号”和标识数据接收进程的“目的端口号”都包含在每个TCP段和UDP分组的第一个报头字中。
在UNIX系统中,端口号在/etc/services文件中定义。网络应用程序的数量要比该表中所示的传输层协议数多得多。低于256和端口号是留给“知名服务”的(如同FTP和TELNET一样),从256到1024的端口号用于UNIX的专用服务。
下面列出了部分/etc/services文件。
Peanut% cat /etc/services
echo 7/udp
echo 7/tcp
systat 11/tcp
netstat 15/tcp
ftp-data 20/tcp

将该表与/etc/protocols表结合在一起,就可提供将数据传送到相应的应用程序所需的全部信息。数据报根据其报头第5个字内的目的地址抵达其目的地,IP使用该数据报报头第3个字内的协议号将数据传输给适当的传输层协议。到达该传输协议的数据的第一个字内含有目的端口号,它告诉传输协议将数据传送到特定的应用程序。

软插口(Socket)[/b]

一个IP地址和一个端口号的组合称为一个“软插口(socket)“,一个软插口可以唯一地标识整个Internet中的一个网络进程。“软插口”是IP地址和端口号的组合,一对软插口(一个用于接收主机,另一个用于发送主机)可定义面向连接协议(如TCP)的一次连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: