tcpip协议详解卷二pdf(tcpip协议详解卷二)

      最后更新:2022-11-11 21:50:03 手机定位技术交流文章

      求TCP/IP协议详解第一、二、三卷

      第一章, 引言 第二章OSI模型和TCP/IP协议族第三章底层的技术我买的是实体书。没电子稿。 想要的话自己去书店翻翻吧。
      迅雷下载地址: http://58.251.57.206/down?cid=88ACF11D031954F14C2AC23C602910312684C153&t=13&fmt=&usrinput=TCP/IP 详解&dt=1000004&ps=0_0&rt=0kbs&plt=0&spd=9
      去CSDN搜,这个一定有,我这里只有卷一。
      求TCP/IP协议详解第一、二、三卷

      TCP/IP详解的内容简介

      大家知道,TCP/IP已成为计算机网络的事实上的标准。在关于TCP/IP的论著中,最有影响的就是两部著作。一部是Douglas E. Comer的《用TCP/IP进行网际互连》,而另一部就是Stevens写的这3卷书。这两套巨著都很有名,各有其特点。无论是从事计算机网络的教师还是进行科研的技术人员,这两套书都应大家知道,TCP/IP已成为计算机网络的事实上的标准。而另一部就是Stevens写的这3卷书。这两套巨著都很有名当是必读的。《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作,主要讲述TCP/IP协议方面的内容。与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以动态方式讲述TCP/IP的知识,使读者可以轻松掌握TCP/IP的知识:路由协议、寻址协议、组控制协议、简单邮件传输协议等。全书内容实用性强,是在校生学习TCP/IP知识的良师益友。本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。
      TCP/IP详解的内容简介

      TCP-IP详解卷1:协议读书笔记_2

      在TCP/IP协议族中,链路层主要有三个目的: (1)为IP模块发送和接受IP数据报(2)为ARP模块发送ARP请求和接受ARP应答(3)为RARP发送RARP请求和接收RARP应答以太网是当今TCP/IP采用的主要的局域网技术。它采用一种称作CSMA/CD的额媒体接入方法,其意思是带冲突检测的载波侦听多路接入。它的速率为10MB/S,地址为48bit。主机需求RFC要求每个Internet主机都与10MB/s的以太网电缆相连接:1)必须能发送和接受采用RFC894(以太网)封装格式的分组2)应该能接受与RFC894混合的RFC1024(IEEE082)封装格式的分组3)也许能够发送采用RFC1024格式封装的分组最常使用的封装格式是RFC 894定义的格式。下图显示了两种形式的封装格式。图中每个方框下面的数字是它们的字节长度。两种帧格式都采用48bit(6字节)的目的地址和源地址。ARP和RARP协议对32位bit的IP地址和48bit的硬件地址进行映射。接下来两个字节在两种帧格式中互不相同。RFC1024定义的长度字段是指它后续数据的字节长度,但不包括CRC校验码。RFC894定义了后续数据的类型。RFC1024的有效长度和RFC894有效类型值都不相同,所以,可以对两种帧格式进行区分。RFC894类型后面就是数据;而RFC1024后有哦3个字节的802.2LLC和5个字节的802.2SNAP。目的服务访问点和源服务访问点的值都设为0Xaa。Ctrl字段的值设为3。随后的3个字节org code都置为0。再接下来两个字节类型和以太网格式一样。CRC字段用于帧内后续字节差错的循环冗余码检验。RFC893描述了另一种用于以太网的封装格式,称作尾部封装。在以太网数据帧中,开始的那部分是边长的字段;将其移动到尾部(CRC之前),这样将数据复制到内核时,就可以把数据帧的数据部分映射到一个硬件页面,节省内存到内存的赋值过程SLIP全称是Serial Line IP。它是一种在串行线路行对IP数据报进行封装的简单形式。SLIP适用于家庭中每台计算机几乎都有的RS-232串行端口和高速调制解调器接入Internet。下面的规则描述了SLIP协议定义的帧格式:1)IP数据报以一个END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声也被当成数据报内容,大多数实现在数据报的开始处也传一个END字符。2)如果IP数据报的某个数据是END,那么就要联系传输两个字节0xdb和0Xdc来取代它。0xdb称为SLIP的ESC字符,但是它的值和ASCII码的ESC字符0x1b不同。3)如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个0xdb和0xdd来取代它。SLIP的图示:SLIP的缺陷:1)每一段必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。2)数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。3)SLIP没有在数据帧中加上校验和。SLIP线路行有许多小的TCP分组进行交换。为了传送1个字节的数据需要20个字节的IP首部和20个字节的TCP首部,总数超过40个字节。于是有了CSLIP的新协议,即压缩SLIP。一般可以把上面40个字节压缩到3-5个字节。PPP点对点协议,包含了一下三个部分:1)在串行链路上封装IP数据报的方法。PPP既支持数据为8位的无奇偶校验的异步模式,还支持面向比特的同步链接。2)建立、配置以及测试数据链路的链路控制协议(LCP)。它允许通信双发进行协商,以确定不同的选项。3)针对不同网络层协议的网络控制协议体系。PPP数据帧都是以标志字符0x7e开始和结束。紧接着是一个地址字节,值始终为0x03的字节字符。接下来是协议字段,类似于以太网中类型字段的功能。0X0021代表IP数据报;0XV021代表链路控制数据;0x8021代表信息是网络控制数据。CRC字段,是一个循环冗余校验码,以检测数据帧中的错误。总的来说,PPP比SLIP具有以下优点:1.PPP支持单根串行线路上运行多种协议;2.每一帧都有循环冗余校验;3.通信双方可以进行IP地质的动态协商(使用IP网络控制协议);4.与CSLIP类似,对TCP和IP报文首部进行压缩;5.链路控制协议可以对多个数据链路选项进行设置。大多数产品都支持环回接口,以允许运行在同一主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。图中的关键点是:1)传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入。2)创个广播地址和多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。3)任何传给主机地址的数据均送到环回接口。链路层的数据帧的最大传输字节称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据报分成若干份,这样每一片都小于MTU。 当在同一网络的两台主机互相进行通信时,该网络的MTU是非常重要的。但是两台主机的通信要通过多阿哥网络,那么每个网络的链路层可能有不同的MTU,重要的就不是两台主机所在网络的MTU了,而是两台通信主机路径中的最小MTU。它被称作路径MTU。
      TCP-IP详解卷1:协议读书笔记_2

      TCP/IP详解(卷2)的内容简介

      书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点,如多播、长肥管道支持、窗口缩放、时间戳选项以及其他主题等等。读者阅读本书时,应当具备卷1中阐述的关于TCP/IP的基本知识。
      TCP/IP详解(卷2)的内容简介

      TCP-IP协议详解(3) IP/ARP/RIP/BGP协议

      网络层(network layer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息。操作系统也会提供该层的socket,从而允许用户直接操作IP包。 IP数据包是符合IP协议的信息(也就是0/1序列),我们后面简称IP数据包为IP包。IP包分为头部(header)和数据(Data)两部分。数据部分是要传送的信息,头部是为了能够实现传输而附加的信息(这与以太网帧的头部功能相类似,如果对帧感到陌生,可参看 小喇叭 一文)。IP协议可以分为IPv4和IPv6两种。IPv6是改进版本,用于在未来取代IPv4协议。出于本文的目的,我们可以暂时忽略两者的区别,只以IPv4为例。下面是IPv4的格式IPv4包 我们按照4 bytes将整个序列折叠,以便更好的显示与帧类似,IP包的头部也有多个区域。我们将注意力放在红色的发出地(source address)和目的地(destination address)。它们都是IP地址。IPv4的地址为4 bytes的长度(也就是32位)。我们通常将IPv4的地址分为四个十进制的数,每个数的范围为0-255,比如192.0.0.1就是一个IP地址。填写在IP包头部的是该地址的二进制形式。IP地址是全球地址,它可以识别”社区”(局域网)和”房子”(主机)。这是通过将IP地址分类实现的。IP class    From          To                Subnet MaskA           1.0.0.0       126.255.255.255    255.0.0.0B           128.0.0.0     191.255.255.255    255.255.0.0C           192.0.0.0     223.255.255.255    255.255.255.0每个IP地址的32位分为前后两部分,第一部分用来区分局域网,第二个部分用来区分该局域网的主机。子网掩码(Subnet Mask)告诉我们这两部分的分界线,比如255.0.0.0(也就是8个1和24个0)表示前8位用于区分局域网,后24位用于区分主机。由于A、B、C分类是已经规定好的,所以当一个IP地址属于B类范围时,我们就知道它的前16位和后16位分别表示局域网和主机。网络协议概览 中说,IP地址是分配给每个房子(计算机)的“邮编”。但这个说法并不精确。IP地址实际上识别的是网卡(NIC, Network Interface Card)。网卡是计算机的一个硬件,它在接收到网路信息之后,将信息交给计算机(处理器/内存)。当计算机需要发送信息的时候,也要通过网卡发送。一台计算机可以有不只一个网卡,比如笔记本就有一个以太网卡和一个WiFi网卡。计算机在接收或者发送信息的时候,要先决定想要通过哪个网卡。NIC路由器(router)实际上就是一台配备有多个网卡的专用电脑。它让网卡接入到不同的网络中,这样,就构成在 网络协议概览 中所说的邮局。比如下图中位于中间位置的路由器有两个网卡,地址分别为199.165.145.17和199.165.146.3。它们分别接入到两个网络:199.165.145和199.165.146。IP包的传输要通过路由器的接力。每一个主机和路由中都存有一个路由表(routing table)。路由表根据目的地的IP地址,规定了等待发送的IP包所应该走的路线。就好像下图的路标,如果地址是“东京”,那么请转左;如果地址是“悉尼”,那么请向右。A real world routing table比如我们从主机145.17生成发送到146.21的IP包:铺开信纸,写好信的开头(剩下数据部分可以是TCP包,可以是UDP包,也可以是任意乱写的字,我们暂时不关心),注明目的地IP地址(199.165.146.21)和发出地IP地址(199.165.145.17)。主机145.17随后参照自己的routing table,里面有三行记录:145.17 routing table (Genmask为子网掩码,Iface用于说明使用哪个网卡接口)Destination        Gateway             Genmask             Iface199.165.145.0      0.0.0.0             255.255.255.0       eth00.0.0.0            199.165.145.17      0.0.0.0             eth0这里有两行记录。第一行表示,如果IP目的地是199.165.145.0这个网络的主机,那么只需要自己在eth0上的网卡直接传送(“本地社区”:直接送达),不需要前往router(Gateway 0.0.0.0 = “本地送信”)。第二行表示所有不符合第一行的IP目的地,都应该送往Gateway 199.165.145.17,也就是中间router接入在eth0的网卡IP地址(邮局在eth0的分支)。我们的IP包目的地为199.165.146.21,不符合第一行,所以按照第二行,发送到中间的router。主机145.17会将IP包放入帧的payload,并在帧的头部写上199.165.145.17对应的MAC地址,这样,就可以按照 以太网与wifi协议 中的方法在局域网中传送了。中间的router在收到IP包之后(实际上是收到以太协议的帧,然后从帧中的payload读取IP包),提取目的地IP地址,然后对照自己的routing table:Destination        Gateway             Genmask             Iface199.165.145.0      0.0.0.0             255.255.255.0       eth0199.165.146.0      0.0.0.0             255.255.255.0       eth10.0.0.0            199.165.146.8       0.0.0.0             eth1从前两行我们看到,由于router横跨eth0和eth1两个网络,它可以直接通过eth0和eth1上的网卡直接传送IP包。第三行表示,如果是前面两行之外的IP地址,则需要通过eth1,送往199.165.146.8(右边的router)。我们的目的地符合第二行,所以将IP放入一个新的帧中,在帧的头部写上199.165.146.21的MAC地址,直接发往主机146.21。(在Linux下,可以使用$route -n来查看routing table)IP包可以进一步接力,到达更远的主机。IP包从主机出发,根据沿途路由器的routing table指导,在router间接力。IP包最终到达某个router,这个router与目标主机位于一个局域网中,可以直接建立连接层的通信。最后,IP包被送到目标主机。这样一个过程叫做routing(我们就叫IP包接力好了,路由这个词实在是混合了太多的意思)。整个过程中,IP包不断被主机和路由封装入帧(信封)并拆开,然后借助连接层,在局域网的各个NIC之间传送帧。整个过程中,我们的IP包的内容保持完整,没有发生变化。最终的效果是一个IP包从一个主机传送到另一个主机。利用IP包,我们不需要去操心底层(比如连接层)发生了什么。在上面的过程中,我们实际上假设了,每一台主机和路由都能了解局域网内的IP地址和MAC地址的对应关系,这是实现IP包封装(encapsulation)到帧的基本条件。IP地址与MAC地址的对应是通过ARP协议传播到局域网的每个主机和路由。每一台主机或路由中都有一个ARP cache,用以存储局域网内IP地址和MAC地址如何对应。ARP协议(ARP介于连接层和网络层之间,ARP包需要包裹在一个帧中)的工作方式如下:主机会发出一个ARP包,该ARP包中包含有自己的IP地址和MAC地址。通过ARP包,主机以广播的形式询问局域网上所有的主机和路由:我是IP地址xxxx,我的MAC地址是xxxx,有人知道199.165.146.4的MAC地址吗?拥有该IP地址的主机会回复发出请求的主机:哦,我知道,这个IP地址属于我的一个NIC,它的MAC地址是xxxxxx。由于发送ARP请求的主机采取的是广播形式,并附带有自己的IP地址和MAC地址,其他的主机和路由会同时检查自己的ARP cache,如果不符合,则更新自己的ARP cache。这样,经过几次ARP请求之后,ARP cache会达到稳定。如果局域网上设备发生变动,ARP重复上面过程。(在Linux下,可以使用$arp命令来查看ARP的过程。ARP协议只用于IPv4。IPv6使用Neighbor Discovery Protocol来替代ARP的功能。)我们还有另一个假设,就是每个主机和路由上都已经有了合理的routing table。这个routint table描述了网络的拓扑(topology)结构。如果你了解自己的网络连接,可以手写自己主机的routing table。但是,一个路由器可能有多个出口,所以routing table可能会很长。更重要的是,周围连接的其他路由器可能发生变动(比如新增路由器或者路由器坏掉),我们就需要routing table能及时将交通导向其他的出口。我们需要一种更加智能的探测周围的网络拓扑结构,并自动生成routing table。我们以北京地铁为例子。如果从机场前往朝阳门,那么可以采取2号航站楼->>三元桥->>东直门->>朝阳门。2号航站楼和朝阳门分别是出发和目的主机。而三元桥和东直门为中间的两个router。如果三元桥->>东直门段因为维修停运,我们需要更改三元桥的routing table,从而给前往朝阳门的乘客(IP包)指示:请走如下路线三元桥->>芍药居。然后依照芍药居的routing table前往朝阳门(芍药居->>东直门->>朝阳门)。一种用来生成routing table的协议是RIP(Routing Information Protocol)。它通过距离来决定routing table,所以属于distance-vector protocol。对于RIP来说,所谓的距离是从出发地到目的地途径的路由器数目(hop number)。比如上面从机场到朝阳门,按照2号航站楼->>三元桥->>东直门->>朝阳门路线,途径两个路由器,距离为2。我们最初可以手动生成三元桥的routing table。随后,根据RIP协议,三元桥向周围的路由器和主机广播自己前往各个IP的距离(比如到机场=0,团结湖=0,国贸=1,望京西=1,建国门=2)。收到RIP包的路由器和主机根据RIP包和自己到发送RIP包的主机的距离,算出自己前往各个IP的距离。东直门与三元桥的距离为1。东直门收到三元桥的RIP包(到机场的距离为0),那么东直门途径三元桥前往机场的距离为1+0=1。如果东直门自己的RIP记录都比这个远(比如东直门->>芍药居->>三元桥->>机场 = 2)。那么东直门更改自己的routing table:前往机场的交通都发往三元桥而不是芍药居。如果东直门自身的RIP记录并不差,那么东直门保持routing table不变。上述过程在各个点不断重复RIP广播/计算距离/更新routing table的过程,最终所有的主机和路由器都能生成最合理的路径(merge)。(RIP的基本逻辑是:如果A距离B为6,而我距离A为1,那么我途径A到B的距离为7)RIP出于技术上的原因(looping hops),认为距离超过15的IP不可到达。所以RIP更多用于互联网的一部分(比如整个中国电信的网络)。这样一个互联网的部分往往属于同一个ISP或者有同一个管理机构,所以叫做自治系统(AS,autonomous system)。自治系统内部的主机和路由根据通向外部的边界路由器来和其它的自治系统通信。各个边界路由器之间通过BGP(Border Gateway Protocol)来生成自己前往其它AS的routing table,而自治系统内部则参照边界路由器,使用RIP来决定routing table。BGP的基本工作过程与RIP类似,但在考虑距离的同时,也权衡比如政策、连接性能等其他因素,再决定交通的走向(routing table)。我们一开始讲述了IP包根据routing table进行接力的过程。为了顺利实现接力,我们又进一步深入到ARP和RIP/BGP。这三个协议都协助了IP传输。ARP让每台电脑和路由器知道自己局域网内IP地址和MAC地址的对应关系,从而顺利实现IP包到帧的封装。RIP协议可以生成自治系统内部合理的routing table。BGP协议可以生成自治系统外部的routing table。在整个过程中,我们都将注意力放在了IP包大的传输过程中,而故意忽略一些细节。 而上面的IP接力过程适用于IPv6。【TCP/IP详解】系列教程互联网协议入门 1互联网协议入门 2TCP-IP协议详解(1)网络协议概观TCP-IP协议详解(2) 以太网与WiFi协议TCP-IP协议详解(3) IP/ARP/RIP/BGP协议TCP-IP协议详解(4)IPv4与IPv6地址TCP-IP协议详解(5)IP协议详解TCP-IP协议详解(6) ICMP协议TCP-IP协议详解(7) UDP协议TCP-IP协议详解(8) TCP协议与流通信TCP-IP协议详解(9) TCP连接TCP-IP协议详解(10) TCP滑窗管理TCP-IP协议详解(11) TCP重传TCP-IP协议详解(12) TCP堵塞控制TCP-IP协议详解(13) DNS协议TCP-IP协议详解(14) CIDR与NATTCP-IP协议详解(15) HTTP协议概览 图解TCP-IP协议
      TCP-IP协议详解(3) IP/ARP/RIP/BGP协议

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

          热门文章

          文章分类