tcpip路由技术(tcpip路由技术pdf百度云)

      最后更新:2024-03-26 23:53:09 手机定位技术交流文章

      如何理解TCPIP协议,它的作用是什么呢?

      什么是TCP/IP协议 TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。在Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网,Internet的中文意义是"网际网",它实际上就是将全球各地的局域网连接起来而形成的一个"网之间的网(即网际网)"。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的"世界语"。TCP/IP协议的开发工作始于70年代,是用于互联网的第一套协议。1.1 TCP/IP参考模型TCP/IP协议的开发研制人员将Internet分为五个层次,以便于理解,它也称为互联网分层模型或互联网分层参考模型,如下表:应用层(第五层)传输层(第四层)互联网层(第三层)网络接口层(第二层)物理层(第一层)·物理层:对应于网络的基本硬件,这也是Internet物理构成,即我们可以看得见的硬设备,如PC机、互连网服务器、网络设备等,必须对这些硬设备的电气特性作一个规范,使这些设备都能够互相连接幷兼容使用。·网络接口层:它定义了将资料组成正确帧的规程和在网络中传输帧的规程,帧是指一串资料,它是资料在网络中传输的单位。·互联网层:本层定义了互联网中传输的“信息包”格式,以及从一个用户通过一个或多个路由器到最终目标的"信息包"转发机制。·传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。·应用层:它定义了应用程序使用互联网的规程。1. 2 网间协议IPInternet 上使用的一个关键的底层协议是网际协议,通常称IP协议。我们利用一个共同遵守的通信协议,从而使 Internet 成为一个允许连接不同类型的计算机和不同操作系统的网络。要使两台计算机彼此之间进行通信,必须使两台计算机使用同一种"语言"。通信协议正像两台计算机交换信息所使用的共同语言,它规定了通信双方在通信中所应共同遵守的约定。计算机的通信协议精确地定义了计算机在彼此通信过程的所有细节。例如,每台计算机发送的信息格式和含义,在什么情况下应发送规定的特殊信息,以及接收方的计算机应做出哪些应答等等。网际协议IP协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎没有任何要求,任何一个网络只要可以从一个地点向另一个地点传送二进制数据,就可以使用IP协议加入 Internet 了。如果希望能在 Internet 上进行交流和通信,则每台连上 Internet 的计算机都必须遵守IP协议。为此使用 Internet 的每台计算机都必须运行IP软件,以便时刻准备发送或接收信息。IP协议对于网络通信有着重要的意义:网络中的计算机通过安装IP软件,使许许多多的局域网络构成了一个庞大而又严密的通信系统。从而使 Internet 看起来好象是真实存在的,但实际上它是一种幷不存在的虚拟网络,只不过是利用IP协议把全世界上所有愿意接入 Internet 的计算机局域网络连接起来,使得它们彼此之间都能够通信。1.3 传输控制协议TCP尽管计算机通过安装IP软件,从而保证了计算机之间可以发送和接收资料,但IP协议还不能解决资料分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,连上 Internet 的计算机还需要安装TCP协议来提供可靠的幷且无差错的通信服务。TCP协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收资料以及终止连接。传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。众所周知, Internet 是一个庞大的国际性网络,网络上的拥挤和空闲时间总是交替不定的,加上传送的距离也远近不同,所以传输资料所用时间也会变化不定。TCP协议具有自动调整"超时值"的功能,能很好地适应 Internet 上各种各样的变化,确保传输数值的正确。因此,从上面我们可以了解到:IP协议只保证计算机能发送和接收分组资料,而TCP协议则可提供一个可靠的、可流控的、全双工的信息流传输服务。综上所述,虽然IP和TCP这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,幷且在功能上也是互补的。只有两者的结合,才能保证 Internet 在复杂的环境下正常运行。凡是要连接到 Internet 的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称作TCP/IP协议。1. 4 IP地址及其分类在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。就好象每一个住宅都有唯一的门牌一样,才不至于在传输资料时出现混乱。Internet的网络地址是指连入Internet网络的计算机的地址编号。所以,在Internet网络中,网络地址唯一地标识一台计算机。我们都已经知道,Internet是由几千万台计算机互相连接而成的。而我们要确认网络上的每一台计算机,靠的就是能唯一标识该计算机的网络地址,这个地址就叫做IP(Internet Protocol的简写)地址,即用Internet协议语言表示的地址。目前,在Internet里,IP地址是一个32位的二进制地址,为了便于记忆,将它们分为4组,每组8位,由小数点分开,用四个字节来表示,而且,用点分开的每个字节的数值范围是0~255,如202.116.0.1,这种书写方法叫做点数表示法。IP地址可确认网络中的任何一个网络和计算机,而要识别其它网络或其中的计算机,则是根据这些IP地址的分类来确定的。一般将IP地址按节点计算机所在网络规模的大小分为A,B,C三类,默认的网络屏蔽是根据IP地址中的第一个字段确定的。1. A类地址A类地址的表示范围为:0.0.0.0~126.255.255.255,默认网络屏蔽为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。2. B类地址B类地址的表示范围为:128.0.0.0~191.255.255.255,默认网络屏蔽为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。3. C类地址C类地址的表示范围为:192.0.0.0~223.255.255.255,默认网络屏蔽为:255.255.255.0;C类地址分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。连接到Internet上的每台计算机,不论其IP地址属于哪类都与网络中的其它计算机处于平等地位,因为只有IP地址才是区别计算机的唯一标识。所以,以上IP地址的分类只适用于网络分类。在Internet中,一台计算机可以有一个或多个IP地址,就像一个人可以有多个通信地址一样,但两台或多台计算机却不能共享一个IP地址。如果有两台计算机的IP地址相同,则会引起异常现象,无论哪台计算机都将无法正常工作。顺便提一下几类特殊的IP地址:1. 广播地址 目的端为给定网络上的所有主机,一般主机段为全02. 单播地址 目的端为指定网络上的单个主机地址3. 组播地址 目的端为同一组内的所有主机地址4. 环回地址 127.0.0.1 在环回测试和广播测试时会使用1.5 子网的划分若公司不上Internet,那一定不会烦恼IP Address的问题,因为可以任意使用所有的IP Address,不管是A Class或是B Class,这个时候不会想到要用Sub Net,但若是上Internet那IP Address便弥足珍贵了,目前全球一阵Internet热,IP Address已经愈来愈少了,而所申请的IP Address目前也趋保守,而且只有经申请的IP Address能在Internet使用,但对某些公司只能申请到一个C CLass的IP Address,但又有多个点需要使用,那这时便需要使用到Subnet,这就需要考虑子网的划分,下面简介Subnet的原理及如何规划。1.5.1 Subnet Mask的介绍设定任何网络上的任何设备不管是主机、PC、Router等皆需要设定IP Address,而跟随着IP Address的是所谓的NetMask,这个NetMask主要的目的是由IP Address中也能获得NetworkNumber,也就是说IP Address和Net Mask作AND而得到Network Number,如下所示:IP Address192.10.10.611000000.00001010.00001010.00000110NetMask255.255.255.011111111.11111111.11111111.00000000AND-------------------------------------------------------------------Network Number192.10.10.011000000.00001010.00001010.00000000NetMask有所谓的默认值,如下所示Class IP Address 范围 Net MaskA 1.0.0.0-126.255.255.255255.0.0.0B 128.0.0.0-191.255.255.255255.255.0.0C 192.0.0.0-223.255.255.255255.255.255.0在预设的Net Mask都只有255的值,在谈到Subnet Mask时这个值便不一定是255了。在完整一组C Class中如203.67.10.0-203.67.10.255 NetMask255.255.255.0,203.67.10.0称之Network Number(将IP Address和Netmask作AND),而203.67.10.255是Broadcast的IP Address,所以这两者皆不能使用,实际只能使用203.67.10.1--203.67.10.254等254个IP Address,这是以255.255.255.0作NetMask的结果,而所谓Subnet Msk尚可将整组C Class分成数组Network Number,这要在NEtMask作手脚,若是要将整组C CLass分成2个Network Number那NetMask设定为255.255.255.192,若是要将整组C CLass分成8组Network Number则NetMask要为255.255.255.224,这是怎么来的,由以上知道Network Number是由IP Address和NetMask作AND而来的,而且将NetMask以二进制表示法知道是1的会保留,而为0的去掉192.10.10.193--11000000.00001010.00001010.10000001255.255.255.0--11111111.11111111.11111111.00000000--------------------------------------------------------------192.10.10.0--11000000.00001010.00001010.00000000以上是以255.255.255.0为Net Mask的结果,Network Number是192.10.10.0,若是使用255.255.255.224作Net Mask结果便有所不同192.10.10.193--11000000.00001010.00001010.10000000255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------192.10.10.192--11000000.00001010.00001010.10000000此时Network Number变成了192.10.10.192,这便是Subnet。那要如何决定所使用的NetMask,255.255.255.224以二进制表示法为11111111.11111111.11111111.11100000,变化是在最后一组,11100000便是224,以三个Bit可表示2的3次方便是8个Network NumberNetMask二进制表示法可分几个Network255.255.255.011111111.11111111.11111111.000000001255.255.255.12811111111.11111111.11111111.100000002255.255.255.19211111111.11111111.11111111.110000004255.255.255.22411111111.11111111.11111111.111000008255.255.255.24011111111.11111111.11111111.1111000016255.255.255.24811111111.11111111.11111111.1111100032255.255.255.25211111111.11111111.11111111.1111110064以下使用255.255.255.224将C Class203.67.10.0分成8组Net work Number,各个Network Number及其Broadcast IP Address及可使用之IP Address序号Network Number Broadcast可使用之IP Address(1)203.67.10.0--203.67.10.31203.67.10.1--203.67.10.30(2)203.67.10.32--203.67.10.63203.67.10.33--203.67.10.62(3)203.67.10.64--203.67.10.95203.67.10.65--203.67.10.94(4)203.67.10.96--203.67.10.127203.67.10.97--203.67.10.126(5)203.67.10.128--203.67.10.159203.67.10.129--203.67.10.158(6)203.67.10.160--203.67.10.191203.67.10.161--203.67.10.190(7)203.67.10.192--203.67.10.223203.67.10.193--203.67.10.222(8)203.67.10.224--203.67.10.255203.67.10.225--203.67.10.254可验证所使用的IP Address是否如上表所示203.67.10.115--11001011.01000011.00001010.01110011255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------203.67.10.96--11001011.01000011.00001010.01100000203.67.10.55--11001011.01000011.00001010.00110111255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------203.67.10.32--11001011.01000011.00001010.00100000其它的NetMask所分成的NetworkNumber可自行以上述方法自行推演出来。1.5.3 Subnet的应用使用Subnet是要解决只有一组C Class但需要数个Network Number的问题,幷不是解决IP Address不够用的问题,因为使用Subnet反而能使用的IP Address会变少,Subnet通常是使用在跨地域的网络互联之中,两者之间使用Router连线,同时也上Internet,但只申请到一组C Class IP Address,过Router又需不同的Network,所以此时就必须使用到Subnet,当然二网络间也可以Remote Bridge连接,那便没有使用Subnet的问题。1.6 几个常用的程序1.6.1 ping这个程序用来检测一帧资料从当前主机传送到目的主机所需要的时间。当网络运行中出现故障时,采用这个实用程序来预测故障和确定故障源是非常有效的。如果执行ping不成功,则可以预测故障出现在以下几个方面:网线是否连通,网络适配器配置是否正确,IP地址是否可用等;如果执行ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,ping成功只能保证当前主机与目的主机间存在一条连通的物理路径。它还提供了许多参数,如-t使当前主机不断地向目的主机发送资料,直到使用Ctrl-C中断;-n 可以自己确定向目的主机发送的资料帧数等等。1.6.2 winipcfg它用来显示主机内IP协议的配置信息。它采用Windows窗口的形式显示具体信息。这些信息包括:网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关等,还可以查看主机的相关信息如:主机名、DNS服务器、节点类型等。其中网络适配器的物理地址在检测网络错误时非常有用。1.6.3 tracert这个程序的功能是判定资料包到达目的主机所经过的路径、显示资料包经过的中继节点清单和到达时间。还可以使用参数-d决定是否解析主机名。1.6.4 netstat 这个程序有助于我们了解网络的整体使用情况。它可以显示当前正在活动的网络连接的详细信息,如采用的协议类型、当前主机与远程相连主机(一个或多个)的IP地址以及它们之间的连接状态等。它提供的较为常用的参数是:-e用以显示以太网的统计信息;-s显示所有协议的使用状态,这些协议包括TCP、UDP和IP,一般这两个参数都是结合在一起使用的。另外-p可以选择特定的协议幷查看其具体使用信息,-a 可以显示所有主机的端口号,-r则显示当前主机的详细路由信息。 要运行以上这些程序,只要在DOS方式或Windows开始菜单的运行栏中以命令行的形式键入程序名即可。灵活使用这几个程序可以使你大体了解自己主机对网络的使用情况。
      如何理解TCPIP协议,它的作用是什么呢?

      tcp ip路由技术tcp ip详解有什么不同

      你问的是两本书吧? 这两本书都是网络的圣书。TCPIP路由技术主要偏重路由协议,且很深入,基本上分析到每个数据包。 TCPIP详解是描述TCPIP本身,IP包的构成、排队论、缓冲机制、窗口机制等,更基础一些,其分三卷,大家看的一般都是第一卷原理,后面的编程实现则很少有人涉及。
      说清楚点
      tcp ip路由技术tcp ip详解有什么不同

      TCP/IP路由技术 第一卷和第二卷

      TCP/IP卷1和卷2讲的是不同的路由协议,卷1主要是静态路由,RIP,OSPF,EIGRP,重分布,NAT等。卷2是OSPF,BGP,ACL等,卷1最后讲的是OSPF,但是没有讲完,卷2开始接着讲。建议按照顺序来看。
      应该吧
      TCP/IP路由技术 第一卷和第二卷

      谁能给我讲 TCP/IP

      TCP/IP(图片请参考我的参考资料网址) 1. 前言本文用于介绍TCP/IP协议的最基本内容,十分简单,也十分基本,如果希望了解详细的内容,请参阅其它资料,这只是给初学者用的。2. TCP/IP介绍TCP/IP通常指的是关于TCP和IP的任何东西,它是一个统称,它既可以包括其它协议,其它应用程序,还可以包括网络介质。2.1 基本结构为了理解这个技术,最好称理解下图:这个结构存在于Internet中计算机之中,它决定了计算机在网络上的动作。2.2 名词数据块的名称会因为它处于不同的协议栈而不同。这里给出一个总结:在以太网时,它称为一个以太网帧,在IP上时,它称为IP包,如果数据在IP和UPD之间一般称为UDP数据报,而数据如果在IP和TCP之间,则称为TCP段(或消息),而数据在应用程序中时,则称为应用程序消息。这种定义不是绝对的,不同的文章会有不同的说法。2.3 数据流数据流从应用程序流向TCP或UDP,我们通常知道的FTP是应用TCP协议的,而SNMP协议却是使用UDP协议的。数据由不同协议模块流向同一个以太网适配器。由适配器将数据传送到网络介质上去。上面的过程在接收方反向发生。以太帧传送到ARP或IP模块中,而以太帧中的数据决定此数据是由IP还是由ARP处理。如果是供IP处理的包,则由IP模块直接传送给TCP或UPD,具体传送给谁这由IP包头决定。而UDP包内的数据决定了应该由UPD协议上层的哪一个应用程序接收这个数据,这一点和TCP是一致的。数据在从应用程序下传到网络时,过程比较简单,各层把在数据上加入自己的包头信息,然后传送给下一层就行了。虽然Internet支持多种网络介质,但是一般我们都拿以太网范例。这里我们需要记住的是以太地址是唯一的,全球唯一的。计算机同时也拥有一个四个字节的IP地址,这个地址用于标记IP模块的地址,但对于Internet来说,IP地址不见得是唯一的。一台运行着的计算机通常知道自己的IP地址和以太地址。2.4 两个网络接口下图中一台计算机连接了两个以太网。请注意:上图中的计算机拥有两个IP地址和以太地址。这时IP模块将对应于多个物理适配器。多个IP模块对应多个物理适配器时,情况要复杂一些。上图说明了IP转发的过程,专用于转发IP包的计算机我们称为IP路由器。从上图中我们可以看出,IP转发的时候根本不需要TCP和UDP,所以有些IP路由器的实现中根本没有TCP和UPD模块。2.5 IP创建信号逻辑网络数据在从应用程序向网络介质传送的过程中,被各种协议加上包头,而由网络介质向应用程序传送时,这些加入的包头被一个个取消,而IP层加入的信息构成了一个逻辑网络,这个逻辑网络是相对于多个物理网络而言的。多个物理网络相互连接,就是我们现在经常听到的Internet的由来。2.6 物理网络独立性IP将下层的网络结构对上层的应用程序隐藏起来,如果您发明了一种新的网络,您只需要实现一种驱动程序,让它能够和IP进行通信就可以使您的网络连接入Internet。2.7 互连性如果Internet上的两台计算机能够进行通信,我们称它们互连了。我们的计算机一般都具有互连性,因此我们购买的计算机一般都可以在网络上相互通信。3. Ethernet下面我们看看以太技术,一个以太帧包括源地址,目的地址,类型域和数据。一个以太地址6个字节,每个以太适配器都有唯一的以太地址,而地址"FF-FF-FF-FF-FF-FF"代表一个广播地址。以太网使用CSMA/CD技术,这个技术使设备共享一条传输介质,某一时刻只能一台设备传送数据,如果两台同时传送就会产生冲突,而解释这种冲突的办法就是两个设备停一会儿(一个随机的时间)再传送数据。我们可以把以太技术想成许多人在一个黑屋子里说话,如果每次只有一个人说,那么对这个话感兴趣的人就会听到,记录下来,而不感兴趣的人就不管它就是了。如果两个人同时说,两个人就会听到自己在说话的时候还有另外一个人也在说,于是就停下来,过一会儿再说,这样来达到传送消息的目的。这里需要注意的是,屋子里的每个人有一个唯一的名字,这个名字就是以太地址,而如果某个人想对所有人说话,它就应用那个广播地址传送消息就可以了。4. ARPARP是为了解决IP包发出后,目的以太地址如何确定的问题。ARP是用来将IP地址解释为以太地址的协议,这个协议只对由IP传出的数据有用。4.1 ARP地址翻译表这个翻译的过程中通过查询一张表进行的,每个机器的IP地址和以太网卡号就在这个表中,如果我想向一个IP地址发送消息,只需要查询一下这张表,知道目的以太地址是什么就可以了。下面就是一张这个的ARP表:IP地址 以太地址223.1.2.1 08-00-39-00-2F-C3223.1.2.3 08-00-5A-21-A7-22223.1.2.4 08-00-10-99-AC-54图1. ARP表IP地址在机器内部是一个4字节数,而人类的表示是如上表中的表示方法,这种方法称为点为十进制。这种翻译表是必须的,因为IP地址的选择和以太地址的选择是独立进行的。以太地址是生产厂商根据分配给它的地址空间直接烧结在网卡上的。4.2 经典的翻译过程在通常网络操作进行时,应用程序发送消息到TCP(或UDP),由TCP(或UDP)传送消息到IP模块,目的IP地址是已知的,在将这个包传送到以太适配器时一定要查找这个翻译表知道目的以太地址是什么。而这时ARP就管用了。4.3 ARP请示/响应对但是,ARP表如何从空变得那么充实呢?这是由ARP协议来完成填充工作的,它工作的基本过程是“需时再取”的原则。当ARP不能用于查询以太地址时,会发生下面两件事情:1. ARP用以太广播地址发送一个以太包到网络上,所有的计算机都会接收到这个包;2. 将需要发送的IP包放入发送队列中;发出的那个以太包就象一个问路的人一样,它带有如下信息:“如果您的IP地址和我想找的IP地址一样,请告诉我您的以太地址”,下面是一个ARP请示包的例子:发送者IP地址 223.1.2.1发送者以太地址 08-00-39-00-2F-C3目标IP地址 223.1.2.2目标以太地址 (空)表2. ARP请示包例子每台计算机的ARP模块检查自己的IP地址是不是和这个包内的IP地址一致,如果不一致,就什么也不干,如果一致,则返回一个响应,其中包括的信息指出了这个IP地址的以太地址。下面是一个响应包的例子:发送者IP地址 223.1.2.2发送者以太地址 08-00-28-00-38-A9目标IP地址 223.1.2.1目标以太地址 08-00-39-00-2F-C3表3. ARP响应包例子这个响应由原来发出请求的计算机接收,ARP就将相应的IP地址和以太地址加入ARP表中,这个过程不断地发生,这个表也就不断地加大了,更新过的ARP表如下图所示:IP地址 以太地址223.1.2.1 08-00-39-00-2F-C3223.1.2.2 08-00-28-00-38-A9223.1.2.3 08-00-5A-21-A7-22223.1.2.4 08-00-10-99-AC-54表4. 更新后的ARP表这个请求与响应的过程十分迅速,放入队列的IP包现在可以取出发送了,因为所需要的以太地址已经有了,可以发送了。如果没有目的主机,发出的请求就不会有回应,IP层抛弃需要发送的IP包,而上层协议也不清楚是网络断了,还是不存在目的主机,IP层不负责报告错误类型。5. Internet协议IP模块是Internet技术的核心,而它的路由技术是它成为核心的基础。了解路由需要也解互连是什么。5.1 直接路由下图是一个只有三台计算机的小网络,每台计算机有运行一个TCP/IP协议栈,每个计算机配有以太适配器,每个计算机都被指定一个独立的IP地址。当A发送IP包到B时,IP包头包括A的IP地址(这是源地址)和A的以太地址(这是源以太地址);同时这个包也包括B的IP地址和以太地址作为目的地址。地址 源 目的IP头 A B以太头 A B表5. 从A到B的IP包在这种情况下,使用IP是多余的,因为它根本没有起到什么作用,用IP只能增加多余的处理时间,占用了多余的传输带宽。B接收到这个包后,IP层检查这个包内的目的地址是不是和自己的IP地址一致,如果一致则将数据返回给上层协议。这称为直接路由。5.2 间接路由下面这个示意图更接近Internet真实的情况。三个小的以太网,每个网络中有三台计算机,它们有唯一以太地址,IP地址,这三个网络通过一台路由器连接,这台路由器有一个IP地址和三个以太地址,因为它和三个网络连接,当然要三个了。这里一定要记住,IP地址只有一个。计算机D是一台路由器,它的TCP/IP协议栈内可能根本没有TCP和UDP,而可能有多个ARP模块和多个以太驱动程序(因为有多个以太适配器,所以要多个驱动程序才可以)。网络管理员为每个子网(上图中有三个子网)指定一个网络号,是这个网络的名称,这个名称在上图是没有表示。如果计算机A希望和计算机B通信,采用直接路由就可以了。这个过程上面已经说过了。在同一个子网内均采用直接路由。如果计算机D希望和计算机A通信,这也是直接路由,直接通信就行了,D和其它所有计算机的通信都是直接通信。但是如果计算机A希望和非本子网内的计算机通信就不能采用直接路由了,它发送的IP包必须发到计算机D,由计算机D向其它网络发送,这种通信就是非直接的。路由对于IP协议上层的协议来说是透明的,它们根本不知道有什么路由存在。请注意下面的图,源地址是计算机A的,目的IP地址是计算机E,而目的以太地址却是计算机D的,这是因为计算机A和计算机E不处于同一个子网内,不能直接通信,需要由计算机D进行转发,因此这包只能发往计算机。地址 源 目的IP头 A E以太头 A D表6. 从计算机A到计算机E以太帧示意图对于计算机D来说,它的以太帧地址如下:地址 源 目的IP头 A E以太头 D E表7. 从计算机D到计算机E以太帧示意图因为计算机D和计算机E可以直接通信。我们可以看到,在直接通信时,目的IP地址和以太地址都是接收者的,而在非直接通信时,目的IP地址是接收者的,而目的以太地址却是路由器的。上面的例子比较简单,真实的路由要比这个复杂得多,因为现实中的网络十分大,要许多路由器同时工作,这时的情况就比较复杂了。5.3 IP路由规则对于要发出的IP包,IP必须决定如何发送,是采用直接发送还是非直接发送,这是在路由表的帮助下完成的。对于传入的IP包,IP模块必须能够识别它是不是自己需要的包,如果是自己需要的,就把数据传送到上一层协议中,如果不需要则进行转发。在IP包达到目的地址后,它不再转发了。5.4 IP地址IP地址是由网络管理者为一台计算机指定的地址,IP地址的一部分作为网络号,另一部分作为网络中的主机号。具体内容请大家查询相关资料。IP地址是由NIC管理的,所有直接连接到Internet上的计算机如果需要IP地址,必须和NIC联系,则它指定;如果您需要建立自己的网络,那相应的网络号也需要从NIC取得。5.5 名称人们喜欢使用计算机的名称,而不喜欢使用数字来标记一台计算机,对于小型网络,计算机名和IP地址的对应表可以保存在每台计算机上,如果是一个大型网络,则需要一台专用的计算机来负责IP地址到计算机名的转换。下面就是一个IP地址和计算机名的对应表。223.1.2.1 alpha223.1.2.2 beta223.1.2.3 gamma223.1.2.4 delta223.1.3.2 epsilon223.1.4.2 iota前一列是IP地址,后一列是计算机名。您可以为一个计算机名指定多个IP地址,那么通过哪一个IP地址都可以访问这台计算机。这个拥有多个IP地址的计算机在接收到包后,可以根据目的地址知道是不是发向自己的包,这个目的地址可以是自己的任何一个地址。名称也用于网络号,下面就是一个例子:223.1.2 development223.1.3 accounting223.1.4 factory前一列是IP地址,后一列是网络名。我们可以这个表上面的表对比一下,看看各个计算机属于什么网络。5.6 IP路由表我们上面已经提到过路由表这个名词,下面我们就仔细看一下这张表。它通常是由下面几列构成的:IP网络号,直接/非直接标记,路由器IP地址和接口号。这张表一般由管理员负责维护,因为是他为你的计算机指定了IP地址。5.7 直接路由下面我们仔细看一下我们上面看过的直接路由的例子。在计算机alpha内的路由表如下所示:网络 直接/非直接标记 路由器 接口号development 直接 (空) 1表8. 路由表范例我们可能通过UNIX下的"netstat -r"命令看到类似这样的结果。5.8 实例Alpha发送IP包到beta,alpha中的IP包的目的地址是beta的地址(223.1.2.2)。IP取得网络号部分,查询路由表中的第一部分,看这个包应该包到什么地方,它发现这个网络和表中的第一个项目一致。而这个项目中的其它信息表示,目的计算机可以直接通信,于是直接进行ARP翻译(解析),通过接口1发送数据。5.9 非直接路由下面我们仔细看一下我们上面看过的非直接路由的例子。计算机alpha内的路由表如下所示:网络 直接/非直接标记 路由器 接口号development 直接 (空) 1accounting 非直接 devnetrouter 1factory 非直接 devnetrouter 1表10. Alpha内的路由表5.10 实例Alpha发送IP包到epsilon,IP包内的目的地址是epsilon的(223.1.3.2)。IP分析目的地址的网络号部分,查询路由表中的第一列,发现第二个项目符合条件。此项目中的信息表示计算机可以由路由器devnetrouter达到,Alpha的IP模块进行ARP解析,将数据通过接口1传送到devnetrouter的IP地址上。这个包仍然包括着目的机IP地址223.1.3.2。这个包到达development网络接口,传送到delta计算机的IP模块,delta计算机发现这个包不是给它的,于是决定转发。Delta的IP模块从目的地址中解析出网络号,查询路由表,Delta的路由表如下所示:网络 直接/非直接标记 路由器 接口号development 直接 (空) 1factory 直接 (空) 3accounting 直接 (空) 2表11. Delta的路由表第二条符合条件,于是IP模块接口3将数据发送到计算机epsilon,IP包到达epsilon时,epsilon的IP模块发现目的地址和自己的一致,于是将接收到的数据向上一层协议传送。5.11 路由总结在一个大型网络中,IP包在到达目的计算机前一般需要经过多个路由器,它前进的路线不是事先定好的,而是在各个路由器上一步步查询出来的,每个计算机只管一段,只保证把数据传送到下一站,至于下一站怎么办,它就不管了。5.12 管理路由在大型网络的每台机器上支持一张路由表可不是件容易事,路由器如果出了问题会对网络传输不能进行。我们也可以使用ICMP协议对网络进行监控。一台机器从一个地方移到另一个地方必须更改计算机的IP地址,如果要更新主机地址文件,这简单是不可能的,而DNS帮助解决这个问题。6. 用户数据报协议(UDP)UDP是在IP上的两个重要协议之一,它为用户的网络应用程序提供服务,我们经常使用的NFS,SNMP就是使用UDP协议的。UDP协议不是面向连接的。这一点是和TCP协议不同的。UDP在IP包上加上了端口号和校验码两个参数。6.1 端口一台计算机上的客户程序如何达到服务器呢?应用程序和UDP的通信线路是通过UDP端口一样的,这些端口是数字的,以0开始,一个端口一般和一个服务对应。服务器和客户就在这个端口等待对方的请求(或应答)。UDP保留由应用程序定义的消息边界。它决不把两个消息连接起来,或把一个消息分成两部分。6.2 校验码如果接收到的IP包内有一个标记“UDP”,IP模块就把数据传送到UDP,UDP检查校验码,如果运算得出的结果为0,数据是正确的。UDP的校验码可以产生也可以不产生。传送来的UDP包如果超过了上层应用程序的处理能力,就会暂时保存起来,如果保存的数据已经超过一定限制,则把UDP丢弃。7. 传输控制协议(TCP)TCP提供的服务不同于UDP,它们的最大区别在于TCP是面向连接的,TCP保证数据一定传送到接收者,而UDP可不保证。TCP用于一定要保证数据传输的场合,我们通常知道的FTP,TELNET是基于TCP协议的,而其它的一些TCP网络应用程序包括X-Window系统,rcp(远程复制)和R系列命令也是使用TCP的,TCP提供这样好的服务也是有代价的,它需要更多的CPU处理时间和网络带宽,TCP模块的复杂度也比UDP大得多。与UDP相同的是,应用程序必须和TCP端口连接请求服务,接收和发送数据。在应用程序开始运行时,服务器和客户机上的TCP模块开始相互通信,这两个TCP包含了状态信息,维持一条虚链路,这条虚链路是全双工的。TCP可以任意打包数据,不必管什么边界。例如,应用程序可以在一个端口写5次,远方的应用程序可以读10次把数据读完,这和UDP不同,在UDP下,在一个端口写几次,远程应用程序就要读几次。TCP支持滑动窗口协议,双方都进行流量控制,因此不会让缓冲区满。这也和UDP不同,在UDP的情况下,缓冲区可能因为应用程序的处理能力不足而变满。对于滑动窗口协议,它指定了一个窗口大小,这个大小指的是,在未接收到确认信息之前允许发送的数据数,在TCP中,窗口的大小是以字节为单位的。8. 网络应用程序TCP和UDP提供不同的服务,不同的应用程序会选择不同的协议,这里请您注意,如果您选择使用UDP进行可靠传输,那只能在UDP上层来提供可靠性。下面我们举出几个常用的应用程序。 TELNET使用TCP提供远程登录。TELNET工作得非常好,它虽然古老,但是现在仍然在广泛使用,它经常用于在不同的操作系统间进行互连。 FTP协议和TELNET岁数差不多大了,它也使用TCP服务,在FTP时,您好象登录到远程计算机上,但您能够使用的命令却不那么多,FTP提供用户在计算机间复制文件的服务。UNIX中的远程命令一般都以R开始,这些命令一般都通过网络进行,我们就称它们为R系列命令,这些命令通常在UNIX系统中使用,它对安全性考虑不多,但是非常好用。NFS由Sun公司开发,它使用UDP,它用于在不同的计算机上加载UNIX文件系统,在这一点上它做得非常好。NFS为网络加重了负担,在慢速连接的网络上工作得不好,但它的功能可却是不错。随着网络规模不断扩大,原来的网络管理协议ICMP已经不能提供满意的服务了,于是在这一要求下提出了SNMP协议,它检测网络中各种设备的情况,根据这种情况对网络进行监控。X Window系统使用X Window协议,X Window协议也使用TCP服务
      TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。在任何一个物理网络中,各站点都有一个机器可识别的地址,该地址叫做物理地址.物理地址有两个 特点:(1)物理地址的长度,格式等是物理网络技术的一部分,物理网络不同,物理地址也不同.(2)同一类型不同网络上的站点可能拥有相同的物理地址.以上两点决定了,不能用物理网络进行网间网通讯.在网络术语中,协议中,协议是为了在两台计算机之间交换数据而预先规定的标准。TCP/IP并不是一个而是许多协议,这就是为什么你经常听到它代表一个协议集的原因,而TCP和IP只是其中两个基本协议而已。你装在计算机-的TCP/IP软件提供了一个包括TCP、IP以及TCP/IP协议集中其它协议的工具平台。特别是它包括一些高层次的应用程序和FTP(文件传输协议),它允许用户在命令行上进行网络文件传输。TCP/IP是美国政府资助的高级研究计划署(ARPA)在二十世纪七十年代的一个研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,也就是国际互联网。原始的Internet通过将已有的网络如ARPAnet转换到TCP/IP上来而形成,而这个Internet最终成为如今的国际互联网的骨干网。如今TCP/IP如此重要的原因,在于它允许独立的网格加入到Internet或组织在一起形成私有的内部网(Intranet)。构成内部网的每个网络通过一种-做路由器或IP路由器的设备在物理上联接在一起。路由器是一台用来从一个网络到另一个网络传输数据包的计算机。在一个使用TCP/IP的内部网中,信息通过使用一种独立的叫做IP包(IPpacket)或IP数据报(IP datagrams)的数据单元进--传输。TCP/IP软件使得每台联到网络上的计算机同其它计算机“看”起来一模一样,事实上它隐藏了路由器和基本的网络体系结构并使其各方面看起来都像一个大网。如同联入以太网时需要确认一个48位的以太网地址一样,联入一个内部网也需要确认一个32位的IP地址。我们将它用带点的十进制数表示,如128.10.2.3。给定一个远程计算机的IP地址,在某个内部网或Internet上的本地计算机就可以像处在同一个物理网络中的两台计算机那样向远程计算机发送数据。TCP/IP提供了一个方案用来解决属于同一个内部网而分属不同物理网的两台计算机之间怎样交换数据的问题。这个方案包括许多部分,而TCP/IP协议集的每个成员则用来解决问题的某一部分。如TCP/IP协议集中最基本的协议-IP协议用来在内部网中交换数据并且执行一项重要的功能:路由选择--选择数据报从A主机到B主机将要经过的路径以及利用合适的路由器完成不同网络之间的跨越(hop)。TCP是一个更高层次的它允许运行在在不同主机上的应用程序相互交换数据流。TCP将数据流分成小段叫做TCP数据段(TCP segments),并利用IP协议进行传输。在大多数情况下,每个TCP数据段装在一个IP数据报中进行发送。但如需要的话,TCP将把数据段分成多个数据报,而IP数据报则与同一网络不同主机间传输位流和字节流的物理数据帧相容。由于IP并不能保证接收的数据报的顺序相一致,TCP会在收信端装配TCP数据段并形成一个不间断的数据流。FTP和Telnet就是两个非常流行的依靠TCP的TCP/IP应用程序。另一个重要的TCP/IP协议集的成员是用户数据报协议(UDP),它同TCP相似但比TCP原始许多。TCP是一个可靠的协议,因为它有错误检查和握手确认来保证数据完整的到达目的地。UDP是一个“不可靠”的协议,因为它不能保证数据报的接收顺序同发送顺序相同,甚至不能保证它们是否全部到达。如果有可靠性要求,则应用程序避免使用它。同许多TCP/IP工具同时提供的SNMP(简单网络管理协议)就是一个使用UDP协议的应用例子。 其它TCP/IP协议在TCP/IP网络中工作在幕后,但同样也发挥着重要作用。例如地址转换协议(ARP)将IP地址转换为物理网络地址如以太网地址。而与其对应的反向地址转换协议(RARP)做相反的工作,即将物理网络地址转换为IP地址。网际控制报文协议(ICMP)则是一个支持性协议,它利用IP完成IP数据报在传输时的控制信息和错误信息的传输。例如,如果一个路由器不能向前发送一个IP数据报,它就会利用ICMP来告诉发送者这里出现了问题。
      http://office.hebust.edu.cn/study/wljczs/tcpip.htm 讲的很详细的
      谁能给我讲 TCP/IP

      tcpip路由技术tcpip详解有什么不同

      标准的答案!你问的是两本书吧? 这两本书都是网络的圣书。TCPIP路由技术主要偏重路由协议,且很深入,基本上分析到每个数据包。 TCPIP详解是描述TCPIP本身,IP包的构成、排队论、缓冲机制、窗口机制等,更基础一些,其分三卷,大家看的一般都是第一卷原理,后面的编程实现则很少有人涉及。
      tcpip路由技术tcpip详解有什么不同

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/311152.html

          热门文章

          文章分类