深入浅出TCPpdf下载pdf下载

深入浅出TCP百度网盘pdf下载

作者:
简介:本篇主要提供深入浅出TCPpdf下载
出版社:北京大学出版社
出版时间:2021-06
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色


编辑推荐

TCP/IP和VPN重量级教材:以幽默诙谐的笔调图解 HTTP、图解 TCP/IP、图解MPLS、图解OSPF/RIP/IS-IS/BGP、图解VPN,全面阐述和透彻分析网络协议的工作原理和实现细节,涵盖新的网络协议和实践方法。

内容简介

本书以RFC为基础,以“TCP/IP→MPLS→MPLS VPN”为主线,系统介绍了相关的网络协议,包括TCP/IP体系的基本协议(物理层、数据链路层、网络层、传输层、应用层)、路由协议(OSPF、IS-IS、RIP、BGP),以及MPLS和MPLS VPN。
本书尽可能地以相对轻松的笔调来讲述略显枯燥的网络协议知识。本书也尽可能地深挖网络概念背后的细节和本质,期望做到生动有趣、深入浅出,能给读者枯燥的学习增加一点轻松快乐。
本书适用于对网络协议零基础而期望入门或者有一定基础而期望能有所提高的读者,适用于深入网络协议开发/测试的读者,适用于计算机系统维护的管理员,也适用于仅仅希望对网络协议做一些简单了解的读者。

作者简介

李宗标,华为网络运维高级架构师,业界 SDN+NFV Orchestrator 开源项目架构师,对网络运维、软件架构、SDN/NFV 有较深研究,著有《深入理解 OpenStack Neutron》一书。

目录

第0章 计算机网络模型

0.1 OSI七层模型 2

0.2 TCP/IP模型 6

第1章 物理层浅说

1.1 通信系统基本模型 10

1.2 传输媒体 22

1.3 物理层综述 34

第2章 数据链路层

2.1 数据链路层的基本使命 37

2.2 点对点协议 55

2.3 以太网 72

2.4 生成树协议 97

2.5 VLAN 130

2.6 数据链路层小结 138

第3章 网络层

3.1 Internet发展简史 141

3.2 IP地址 155

3.3 IP报文格式 170

3.4 ARP 183

3.5 IP路由 200

3.6 ICMP 216

3.7 网络层小结 228

第4章 传输层

4.1 TCP报文结构 230

4.2 TCP连接 238

4.3 滑动窗口 295

4.4 UDP 357

4.5 传输层小结 358

第5章 HTTP

5.1 HTTP综述 360

5.2 URI(统一资源标识符) 375

5.2.1 URI的基本语法 376

5.2.2 百分号编码 388

5.2.3 URL和URN 392

5.3 Header Fields 393

5.4 HTTP Methods 420

5.5 HTTP状态码 439

5.6 HTTP连接 449

5.7 HTTP的Cookie与Session 453

5.8 HTTP Cache 465

5.9 HTTP小结 481

第6章 OSPF

6.1 Dijkstra算法 483

6.2 OSPF概述 486

6.3 邻居发现 488

6.4 DR机制 492

6.5 OSPF接口状态机 509

6.6 链路状态通告 513

6.7 LSA泛洪 539

6.8 生成LSA 575

6.9 OSPF小结 581

第7章 IS-IS

第8章 RIP

第9章 BGP

第10章 MPLS

第11章 MPLS L3VPN

第12章 MPLS L2VPN

参考文献 785

精彩书摘

第1章 物理层浅说
提起物理层,最先映入脑海的可能就是网线。但物理层绝对不是网线(双绞线)这么简单。从某种意义上说,网络模型中的物理层是学习过程中最容易忽略的一层。但是,物理层是涉及物理学、数学、材料学等较多知识的一个层。比如著名的香农(Shannon)定理就与物理层密切相关。不过从掌握基本概念和基础学习的角度来看,可暂时忘记物理层,从最基本的通信系统切入,不失为一种较好的方法。

1.1 通信系统基本模型
我们日常的电话、视频、微信等,都属于通信。这些通信场景形态各异、千差万别,但是抽象地看,其背后都符合一个通信系统的基本模型,如图1-1所示。

图1-1 通信系统基本模型
信源指信息的发送方,信宿指信息的接收方。在图1-1中,信源、信宿及中间的信号传输(网络)都是非常抽象的,它甚至可以指代一条狗、一只猫和“以太”(古希腊哲学家亚里士多德所设想的一种物质)。
狗(信源)与猫(信宿)的对视,通过眼神交流,它们之间为“光通信”,其信号传输网络则是“以太”。
在图1-1中,却有两个不那么抽象的模块:编码和调制/解调这两个模块其实并不那么抽象,是因为我们要讲述的还是计算机通信,而不是完全抽象的通信系统。另外,编码、调制、解调,虽然不像TCP/IP那样显山露水,却是通信系统非常基础的部分。尤其是编码,是基础的基础。
1.1.1 编码
通过网络,我们可以获取很多信息,然而网络中“跑”的一般都是数字信号。数字信号就是以常见的二进制数字表示的信号,类似于“0101”这样的比特流。假设,用高(正)电平表示1,用低(零)电平表示0,信源要发送一串比特流“1010110”给信宿,则其信号传输如图1-2所示。

图1-2 发送比特流
在图1-2中,信源将数据“1010110”转换为固定时间间隔(周期为T)的信号进行发送,网络传输对原始脉冲信号没有做任何改变(也没有任何衰减和噪声干扰),信宿接收到脉冲信号以后,需要将这些脉冲信号进行还原,得到原始信息(1010110),这就要求信宿和信源的时钟要同步。
时钟同步是通信系统中一个重要且涉及知识面极广的话题,由于本书主题是协议,因此这里不进行详述。可以这样简单理解时钟同步:信宿还原信号的频率与信源发送信号的频率要相同。图1-3描述了时钟同步与不同步的情形。
在图1-3中,当时钟同步时,信宿和信源的时钟频率相同,即T2 = T1,所以信宿能够正确地还原出信源发送的数据(1010110);而当时钟不同步时,信宿的时钟周期是信源的2倍,即T2 = 2T1,此时数据传输就会出错。
时钟同步是网络通信中一个非常重要的基础条件,其定义如下:信宿端的定时时钟频率与其所接收的码元的速率完全相同,并且定时时钟信号与所接收的码元信号的频率保持固定的最佳相位关系。信宿端获得或产生符合这一要求的定时信号的过程称为时钟同步(或称为位同步或比特同步)。
该定义包含以下几层含义。
信宿端的时钟与其所接收的码元(信号)频率必须相同。
信宿端可通过某种方法获得这个频率:信源端专门发送同步信息(称为导频),信宿端从导频信号中提取出时钟频率,也称为外同步法。
信宿端也可从其所接收的码元(信号)中提取出该频率,而不需要额外的导频信号,也称为自同步法。
1. 归零编码
归零编码(Return Zero Encoding,RZ编码)就是将一个信号周期T分为两个部分:T1时段用以表达(传输)数据,T2时段用以将信号电平归零,如图1-4所示。

图1-4 RZ编码(单极性)
图1-4中,RZ编码就是利用T2时段内的归零信号表达(传输)时钟信号,其优点是不需要额外的导频信号;缺点是传输效率下降,其传输效率只有T1/T。就传输效率而言,自同步(信号里包含时钟信息)可能更具优势。
RZ编码分为单极性归零编码和双极性归零编码。图1-4表示的就是单极性归零编码,它用高电平表示1,用低电平表示0。而双极性归零编码则用正(高)电平表示1,负(低)电平表示0,更容易看出归零的效果,如图1-5所示。

图1-5 RZ编码(双极性)
2. 不归零编码
不归零编码(None Return Zero Encoding,NRZ编码)表示传输完一个码之后电压不需要回到0,如图1-6所示。
NRZ编码的优点是传输效率是100%,缺点是信号中没有包含时钟信息。NRZ编码若想传输高速同步数据,基本上都要带时钟线(异步低速传输可以没有),这是额外的负担。
3. 反向不归零编码
RZ编码自带时钟信息,但是传输效率相对较低;而NRZ编码传输效率高(100%),但是不能自带时钟信息。反向不归零编码(Non Return Zero Inverted Encoding,NRZI编码)则解决了RZ/NRZ编码的矛盾:既能自带时钟信息,又能高效传输,如图1-7所示。
NRZI编码的规则是:与前一个信号对比,如果相同,则为1;如果不同,则为0。
极端情况下,如果发送一串全0的比特流,如“0000000”,则NRZI编码会变成图1-8所示。

          图1-7 NRZI编码           图1-8 NRZI编码(全0比特流)
需要特别说明,NRZI编码“害怕”全1比特流,因为如果“全1”,则无法提取时钟信息。其解决方案是在一定数量的1后面插入一个0,然后在解码时再将这个0删去除。例如,著名的USB 2.0协议就规定在7个1后面插入一个0。如果要发送8个1(11111111),那么其NRZI编码如图1-9所示。

图1-9 NRZI编码(8个1的比特流)
4. 曼彻斯特编码
曼彻斯特编码(Manchester Encoding)也称为相位编码(Phase Encoding,PE)。前文介绍的RZ、NRZ、NRZI编码都以电平高低来表达数字信号,而曼彻斯特编码则以电平跳变来表达数字信号,如图1-10所示。

图1-10 曼彻斯特编码关于比特的标识
图1-10表述了曼彻斯特编码两种定义数字信号比特1/0的方法(现在这两种定义都有应用),如下所述。
①IEEE 802.3(以太网)、IEEE 802.4(令牌总线)中规定, 低-高电平跳变表示1, 高-低电平跳变表示0。
②G. E. Thomas、 Andrew S. Tanenbaum于1949年提出,低-高电平跳变表示0,高-低电平跳变表示1。
对于“1010110”的曼彻斯特编码如图1-11所示。从图中可以看出,曼彻斯特编码的传输效率与R2编码一样,也是有损传输,没有达到100%。

图1-11 曼彻斯特编码(1010110)
5. 差分曼彻斯特编码
差分曼彻斯特编码关于比特的标识如图1-12所示。

图1-12 差分曼彻斯特编码关于比特的标识
对于“1010110”的差分曼彻斯特编码,如图1-13所示。从图可以看出,差分曼彻斯特编码的传输效率与曼彻斯特编码一样,也是有损传输效率,没能达到100%。

图1-13 差分曼彻斯特编码(1010110)
1.1.2 码元
码元在通信中也是非常基础的概念,其定义如下:在数字通信中常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为(二进制)码元。
也有另一种描述是:在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形就称为码元。
如图1-14所示,其表达的其实就是NRZ编码。用高电平(电压为E)表示二进制数字1,用低电平(电压为0)表示二进制数字0,而高电平/低电平的持续时间为T。也就是说,持续时间为T的电压E,或者持续时间为T的电压0,均被称为码元。

图1-14 码元的通俗解释
在图1-14中,一个码元携带一个比特信息(E等价于1,0等价于0),也有一个码元携带多个比特信息的情况,如图1-15所示。
码元有2E、E、-E、-2E,分别代表01、00、10、11,即1个码元可以携带2个比特信息。
码元所表达的含义是:计算机(广义的计算机)只能处理0/1这样的二进制数字,即信号只有2个状态,但是网络传输的信号不只有2个状态,也可以有4个状态,也可以有更多的状态。
码元与第1.1.1节中所介绍的编码方法并不矛盾,两者可以结合起来使用。例如,用图1-15所表示的码元,基于NRZ编码表达“10101100”这8个比特,如图1-16所示。

图1-15 1个码元携带2个比特信息 图1-16 码元与NRZ编码(10101100)
1.1.3 调制与解调
从网络中传输的信号的“本源”的角度来看,信号分为两种:基带信号(基本频带信号)、带通信号。
基带信号就是来自信源的信号,其没有做任何处理。计算机从网卡输出的信号属于基带信号。基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道(1.1.4小节会介绍这个概念,这里暂且理解为传输线路)并不能传输这种低频分量或直流分量,因此必须对基带信号进行调制(Modulation)。
带通信号就是基带信号经过载波调制后的信号,其目的是把信号的频率范围搬移到较高的频段,以便在信道中传输。
载波就是载着基带信号的波(信号)。载波一般是高频波,以正弦波为例,其波形如图1-17所示。

图1-17 载波示例
(1)调制
调制即载波承载基带信号的方式,包括调幅、调频、调相3种,如图1-18所示(假设基带信号是数字信号)。

图1-18 调幅、调频、调相
调幅(Amplitude Modulation,AM),就是用载波信号的不同振幅来表达基带信号的信息(数字信号中的0/1)。
调频(Frequency Modulation,FM),就是用载波信号的不同频率来表达基带信号的信息。
调相(Phase Modulation,PM),就是用载波信号的相位来表达基带信号的信息。

前言/序言

为什么要写这本书?
TCP/IP 与MPLS VPN 并非什么“崭新”的技术,也非什么“时髦”的技术,相反它还显得有点“古老”。
在计算机网络领域中,有很多经典的书籍珠玉在前。决定写这本书时,我虽然鼓足了勇气,但是内心仍然充满了忐忑。
未来,应该是AI 的时代;未来,更是连接的时代。从这一点来说,TCP/IP 与MPLS VPN 并不过时,它的“青春”才刚刚开始。只有打下坚实的基础,才能在未来的路上迎接无数的挑战和机遇。
TCP/IP 与MPLS VPN 的知识体系浩瀚如烟,即使超越不了经典,我也希望可以为一些读者的“入门”做一点贡献。怀着这样的心情,我终于下定决心,提笔写下本书。
如果问题问对了方向,答案也就找到一半。在写作本书的过程中,我努力地思考问题。例如, TCP 连接是什么?它是一个物理的信道,还是一个逻辑的隧道?又如,URI 与URL 到底是什么关系?我们把平时上网所输入的地址称为URL,是不是显得很“文盲”?诸如此类,不胜枚举。
如果我的问题也是您的问题,那么我所寻找的答案是不是可以为您释疑?如果我的困惑也是您的困惑,那么我所追求的真相是不是可以让您不再迷茫?
学习网络协议的过程,也许会令人感觉非常枯燥和疲惫。当有一天您更上一层楼的时候,我衷心希望,您闻着自己的一身“臭汗”,能对本书说一句:真香 !
本书特色
窃以为,学习网络协议最好的方法不是阅读参考书籍,而是阅读RFC。但是,那么多RFC 文档都通读一遍,确实是一个很大的挑战,尤其是对英语不太好的读者来说更是如此。
那我就将RFC 读给您听 !
本书在写作的过程中,我参阅了大量的RFC,结合RFC和各种资料,并尝试对这些信息进行抽象、归纳、提炼、总结,以及比喻,以尽量做到深入浅出,使内容浅显易懂。
是的,还有比喻,通过幽默或形象的比喻是为了能让枯燥的学习变轻松。例如,OSPF、IS-IS、BGP 都是需要去解决“网络那么大,一锅炖不下”的问题;再如,L3VPN Option A 方案,采取的是“专车”→“裸泳”→“专车”的转发技术。
但是,幽默只是一点调味剂,它不是遥控器,打不开网络协议这部连续剧。抽象、归纳、提炼、总结才是真谛。学习网络协议需要一个完整的知识体系,本书沿着“TCP/IP → MPLS → MPLS VPN” 这一条主线,尽可能为您揭开网络协议的神秘面纱,为您构建网络协议的知识大厦添砖加瓦。
本书内容及知识体系
本书分为三篇。第一篇(第0 ~ 5 章)讲述的是计算机网络模型及TCP/IP 体系的基本协议; 第二篇(第6 ~ 9 章)讲述的是路由协议,包括OSPF、IS-IS、RIP 和BGP;第三篇(第10 ~ 12 章) 讲述的是VPN 通信协议,包括MPLS 及MPLS VPN。各章内容如下。
第0 章 计算机网络模型:讲述了OSI 七层模型和TCP/IP 模型,以及两者之间的关系。
第1 章 物理层浅说:讲述通信系统的基本模型和传输媒体。
第2 章 数据链路层: 讲述数据链路层的基本使命、两个典型的链路层协议(PPP 和Ethernet),并针对Ethernet 更进一步阐述STP/RSTP 和VLAN。
第3 章 网络层:讲述Internet的发展简史、IP地址分类、报文格式、IP路由,以及ARP、ICPM等。
第4 章 传输层:讲述TCP/UDP 的报文结构和TCP 连接的概念,并围绕连接讲述TCP 一系列的传输控制机制—— 可靠性保证、滑动窗口、拥塞控制等。
第5 章 HTTP:讲述HTTP 的报文结构和HTTP 连接的概念,并针对HTTP 的各个部件(URI、 Header、Methods、Status Code、Cookie、Session、Cache)进行详细地解读。
第6 章 OSPF :讲述OSPF 的基础算法Dijkstra、报文格式和OSPF 的基本机制(邻居发现、DR、接口状态机、LSA),并结合OSPF 的大网解决方案,进一步阐述网络的分区、LSA 的分类、LSA 的泛洪等机制。
第7 章 IS-IS :讲述IS-IS 的ISO 地址、IS-IS 的区域、报文格式等基本概念,并讲述IS-IS 的邻接关系建立、链路状态洪泛等机制。
第8 章 RIP :讲述RIP 的基础算法Bellman-Ford 算法、报文格式,以及RIP 的报文处理、防环处理等机制。
第9 章 BGP :讲述BGP 的基本机制、报文格式、路径优选机制、自身的大网解决方案,以及BGP 路径属性。
第10 章 MPLS :讲述MPLS 的转发模型、标签分发协议和LSP 的构建机制。
第11 章 MPLS L3VPN :讲述L3VPN 的概念模型、转发模型和L3VPN 的控制信令,以及L3VPN 的跨域解决方案。
第12 章 MPLS L2VPN:讲述L2VPN 的基本模型和分类,L2VPN 的数据面、控制面(Martini 流派、Kompella 流派),以及L2VPN 和L3VPN 的对比。
本书读者对象
在校学生
网络相关的设计和开发人员
计算机系统维护的管理员
网络协议开发 / 测试人员
对网络感兴趣的人

 本书阅读建议
无论学习什么都应讲究循序渐进的原则。对于网络协议基础尚浅的读者,建议“好读书,不求甚解”,遇到一些暂时没弄懂的问题或一些过于细节的内容不必深究。“每有会意,便欣然忘食”, 从头到尾多读几遍,有些答案便会自然浮现。
还是那句话,学习网络协议最好的方法是阅读RFC。强烈建议您在对本书有一个基本了解以后, 一定要结合本书阅读相关的RFC。很多相关的RFC 在书中已经提到,您也可以从IETF RFCs 查找相应的RFC。
对路由器/ 交换机进行配置也是学习网络协议的一个非常好的方法。非常抱歉,由于篇幅和时间的关系,本书没有涉及相关的配置举例。您可以参考相关资料,再结合本书,对照学习。
抽象、归纳、提炼、总结,我努力去做到这八个字,也建议您在阅读本书的过程中也去做到这八个字。
致谢
由于笔者的水平有限,书中难免存在不妥和疏漏之处,还请读者不吝赐教,指出本书的不当之处。
在写作的过程中,我的同事和朋友王蓥、陈苍、刘明宝、林浩、林章等给予了我很多帮助,尤其是饶家鼎同学,帮我指出了不少错误;微信公众号(bgstx001)里还有一些朋友留言、打赏,给了我很多鼓励和支持。在此,我一并表示衷心的感谢 !
感谢北京大学出版社的魏雪萍主任、王继伟编辑、刘云编辑的指导和帮助,本书才能顺利出版。
感谢我的家人,在背后默默地奉献和支持 !他们的爱,是我力量的源泉 !
李宗标