关闭

关闭

关闭

封号提示

内容

首页 网络是怎样连接的_户根勤.pdf

网络是怎样连接的_户根勤.pdf

网络是怎样连接的_户根勤.pdf

上传者: 枫叶 2017-08-14 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《网络是怎样连接的_户根勤pdf》,可适用于IT/计算机领域,主题内容包含emspemsp图书在版编目(CIP)数据网络是怎样连接的(日)户根勤著周自恒译北京:人民邮电出版社,(图灵程序设计丛书)ISBNⅠ网hellipⅡ符等。

emspemsp图书在版编目(CIP)数据网络是怎样连接的(日)户根勤著周自恒译北京:人民邮电出版社,(图灵程序设计丛书)ISBNⅠ网hellipⅡ户hellip周hellipⅢ计算机网络-连接技术ⅣTP中国版本图书馆CIP数据核字()第号NETWORKWANAZETSUNAGARUNOKADAIHANwrittenbyTsutomuToneCopyrightcopybyTsutomuToneAllrightsreservedOriginallypublishedinJapanbyNikkeiBusinessPublications,IncSimplifiedChinesetranslationrightsarrangedwithNikkeiBusinessPublications,IncthroughCREEKRIVERCo,Ltd本书中文简体字版由NikkeiBusinessPublications,Inc授权人民邮电出版社独家出版。未经出版者书面许可不得以任何方式复制或抄袭本书内容。  版权所有侵权必究。内emsp容emsp提emsp要本书以探索之旅的形式从在浏览器中输入网址开始一路追踪了到显示出网页的内容为止的整个过程以图配文讲解了网络的全貌并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义理解实际的设备和软件进而熟练运用网络技术。同时专设了ldquo网络术语其实很简单rdquo专栏以对话的形式介绍了一些网络术语的词源颇为生动有趣。  本书图文并茂通俗易懂非常适合计算机、网络爱好者及相关从业人员阅读。著    [日]户根勤 译    周自恒  责任编辑 傅志红 执行编辑 高宇涵 侯秀娟责任印制 彭志环人民邮电出版社出版发行  北京市丰台区成寿寺路号 邮编   电子邮件 ptpresscomcn 网址 http:wwwptpresscomcn 北京      印刷开本:times  印张: 字数:千字年月第版 印数:册年月北京第次印刷著作权合同登记号 图字:号定价:元读者服务热线:()转 印装质量热线:()反盗版热线:()广告经营许可证:京东工商广字第号推荐序两个月前就听说花卷A在翻译一本网络书。作为技术圈的活跃分子我自然是要第一时间讨来看的。样书寄来时我正因为感冒而昏昏欲睡没想到翻了十来页人顿时就清醒过来了mdashmdash这不正是我想象中一本网络科普书该有的样子吗?从浏览器输入网址开始引入了HTTP消息由于消息要交给服务器所以用DNS来解析其域名消息到达服务器之前需要传输就要懂得TCP和路由交换helliphellip环环相扣如流水般自然结构上完全顺应了人类的思维习惯。传统的网络教材我也读过不少基本上是以五层(老书甚至有七层)网络模型来划分章节然后再一板一眼地讲解概念结构上完全不同。接下来我又花了两天时间把全书读完了(老司机速度请勿模仿)。越读越觉得作者户根勤是个全栈工程师从软件到硬件从服务器到交换机似乎每一方面都在行很好奇他究竟换过多少工作。我认识的技术人员中知识面这么广的几乎没有比如第章的大部分内容就是我从未涉猎的。跟很多日本作者一样他的表达风格也是细致周全所以不用担心阅读压力。毫不夸张地说读懂了这本书你就理解了网络世界的全貌。这一点对初学者尤为重要因为想要在学习中触类旁通前提就是知识面到位。对于引进型书籍读者们最担忧的其实还是翻译质量我也曾经因为拒绝翻译腔而只读原版。不过花卷的语言能力一向让人放心我几年前买了他译的一本《天自制操作系统》就知道了。这些年来他翻译的技术书有十册了吧?假如不看作者名字我甚至都看不出这些书是外文翻译而来的。花卷的技术功底对我来说也是个谜我看过他关于操作系统的书和他探讨过不同类型的VPN如何架设有一天我Google搜索固态硬盘的工A 指本书译者周自恒其在新浪微博上的昵称为馒头家的花卷。mdashmdash编者注作原理搜到的一篇科普文章竟然也是他写的。也就是如此深不可测的译者才能驾驭覆盖面这么广的书吧。当然了一本书不可能兼顾广度和深度否则篇幅就太大了。指望这本书深挖难点甚至分析具体的问题也是不现实的。假如想学得再深一点我建议自己多做一些实验(其实对于任何技术书都一样)。比如书中第页讲到的地址转换我们完全可以在家里配置一下试试。又比如书里第页讲到了用ACK来确认网络包我们可以装个Wireshark然后抓些包来看看ACK究竟是什么样的。在配置或者分析网络包的过程中你很可能会遇到问题并解决它这样就能理解得更深入了。最后祝大家跟我一样从这本书中学有所获。林沛满年月译者序很多人说现在是ldquo互联网时代rdquo我们身边出现了好多ldquo互联网公司rdquo就连李克强总理也经常把ldquo互联网rdquo挂在嘴边可见互联网已经成为我们日常生活中的一部分了。互联网其实是个非常复杂的玩意儿。我们每天都在上网网络正常的时候大家都觉得ldquo上网嘛不就这么简单rdquo。可是一旦出了问题上不去了你就会发现要想把问题找出来并解决真不是一件容易的事。这次是这里出问题下次是另一个地方出问题能出问题的环节太多了这就说明网络真的很复杂。我上高中的时候曾经有同学来找我帮忙说家里电脑上不了网了。我跑到他家里一看网页确实怎么都打不开但奇怪的是QQ居然能上而且还能正常跟人聊天。当时的搜索引擎还没有这么强大这个问题让我很是困扰。忽然我发现他电脑上TCPIP设置中没有使用自动分配的DNS服务器而且他自行设定的DNS服务器地址是错误的改回自动配置DNS之后故障就解决了。可是为什么DNS不对QQ却可以正常上呢?后来我才知道因为QQ是直接使用IP地址来连接服务器的所以即便DNS失效它依然可以ldquo屹立不倒rdquo以至于现在有很多人把QQ当成一个排查DNS问题的ldquo参照物rdquo。上面这个例子现在看起来其实非常小儿科不过这也恰恰说明了网络很复杂你看我只是上个网而已怎么又冒出来一个DNS呢?即便到了现在要跟周围不大懂网络的朋友解释什么叫DNS也得花上点功夫才行。其实不说DNS就说家里上网用的那个路由器也不是什么省油的灯。很多人又要说了我把电脑插到路由器上就能上网了这又有什么复杂的嘛?那么我再讲个故事吧。有一次公司网络要改造换了一台用RouterOS系统的网关。RouterOS这个系统识货的人都知道它的性能非常棒灵活性也非常高但是你要对网络特别了解才能玩得转。网关装上去之后我想咱们先做个最简单的配置吧就跟家里路由器一样电脑插上去能上外网就行了。然而真配起来才发现想要手动实现家里路由器的那些功能还真没那么容易。首先接在路由器上的电脑需要彼此能够通信这需要配置一个基本的交换机功能。其次接在路由器上的电脑要自动获取IP地址等配置这需要配置一个DHCP服务器。然后连接外网的端口需要单独配置它的IP地址等参数或者配置PPP连接还得配置相应的路由表。到这里还不算完因为内网的电脑要访问外网还得配置好网络地址转换(NAT)!想要上个网还真挺复杂的是不是?你觉得简单是因为你家的路由器帮你把这些功能都集成好了而已。如果上面这一段让你看得有点晕那么这本书就是为你准备的。上面提到的这些东西本书中都有深入浅出的介绍。我读过很多计算机网络方面的书但也正是因为网络太复杂了这些书一般都只讲其中的一个协议(比如HTTP)或者是一个局部的技术(比如网络设备的部署)很少有像这本书一样从一个常见的场景切入把整个网络的全貌如此清晰地展现出来。用本书作者的话说就是:不理解网络的全貌也就无法理解每一种网络技术背后的本质意义。如果你经常和网络技术打交道特别是从事网络分析工作的话这本书可以作为深入学习具体技术的前置读本或者补充读物。因为当你纵览全局之后在学习具体技术时遇到的一些问题自然也就迎刃而解了。此外我在这里还想友情安利两本林沛满老师写的关于Wireshark网络分析的书:《Wireshark网络分析就这么简单》和《Wireshark网络分析的艺术》。我觉得这本书的内容和林老师的两本书配合得非常好毕竟网络分析涉及网络的方方面面如果能对网络有一个全面的了解是很有帮助的。最后感谢图灵教育各位编辑的努力也希望各位读者能够借这本书发现一个不一样的网络世界。周自恒年月于天津前言本书是介绍网络技术的图书mdashmdash《网络是怎样连接的》的第版。和上一版一样本书具备一些同类图书所没有的特色。首先本书讲解了网络的全貌。即便不提互联网(Internet)大家也都知道网络是一个巨大而复杂的系统因此用一本书的篇幅涵盖所有的知识是不可能的。不过我们可以开启探索之旅从在浏览器中输入网址(比如http:wwwnikkeibpcojp)开始一路追踪到显示出网页内容为止的整个过程这样就能够用一本书的篇幅讲清楚网络的全貌了。之所以要控制在一本书的篇幅是因为:如果只是讲解TCPIP、以太网这些单独的技术读者就无法理解网络这个系统的全貌如果无法理解网络的全貌也就无法理解每一种网络技术背后的本质意义而如果无法理解其本质意义就只能停留在死记硬背的程度无法做到实际应用。为了避免这一点即便一本书的篇幅只能介绍有限的一些场景我们也依然可以涵盖网络系统的全貌。其次本书重点介绍了实际的网络设备和软件是如何工作的。TCPIP、以太网等技术可以理解为规定网络设备和软件如何工作的一种规则。尽管理解这些规则很重要但仅仅学习这些规则是无法看到设备和软件的内部构造的。这是因为为了减少设备生产和软件开发上的制约网络中的规则将设备和软件的内部构造看作一个黑箱只从外部视角规定了这些设备和软件的工作方式。而且实际的设备和软件中还包含很多规则中所没有规定的要素。要想熟练运用网络技术理解实际的设备和软件是非常重要的但这一点单靠学习规则本身是无法做到的。考虑到上述原因本书将重点介绍设备和软件的内部工作方式。正是因为本书的上述特色受到了读者的好评(至少笔者是这样认为的)第版的销量远远超出了笔者的预期。这是一件值得高兴的事但也暴露出一些问题。因为读者群之广远远超过了当初设想的范围。要理解实际设备和软件的工作方式需要一定程度的基础知识而第版中对这些内容的讲解并不充分。因此在第版的编写中笔者将这部分内容作为重点全面修订了讲解的内容大幅增加了对于基础知识的介绍。结果这本书的篇幅比第版增加了将近页这也充分体现了此次修订的成果。本书内容繁多这里对各位读者的耐心表示感谢。户根勤年月本书的结构探索之旅指南从在浏览器中输入网址到屏幕上显示出网页的内容在这个只有几秒钟的过程中很多硬件和软件都在各自的岗位上相互配合完成了一系列的工作。本书将以探索之旅的形式带领大家探索这一系列工作中的每一个环节。每个单独的环节都并不复杂只要仔细阅读就一定能够理解。不过探索之旅中出现的硬件和软件数量庞大如果仅从微观的视角关注每一个单独的点可能就会因为看不到整体而迷失了方向。因此在真正出发开始探索之前我们先来对这次探索之旅作个简单的介绍。下面的介绍中还包含一张探索之旅的路线图万一在旅途中迷失了方向请大家务必回来看一看这张地图。网络的全貌让我们先来看一下浏览器访问Web服务器这一过程的全貌。访问Web服务器并显示网页这一过程包含了浏览器和Web服务器之间的一系列交互主要是下面这样的交互。()浏览器:ldquo请给我timestimestimes网页的数据。rdquo()Web服务器:ldquo好的这就是你要的数据。rdquo在这一系列交互完成后浏览器就会将从Web服务器接收到的数据显示在屏幕上。虽然显示网页这个过程非常复杂但浏览器和服务器之间通过网络进行的交互却出乎意料地简单。我们在网上商城购物时输入商品名称和收货地址并发送给Web服务器的操作其实也差不多如下。()浏览器:ldquo请处理这些订单数据。rdquo()Web服务器:ldquo好的订单数据已收到。rdquo本书的结构FCเ٧$*ᎩӴҮనҫ٧ቪFCనҫ٧ር$*ᎩӴҮࠆਖ਼ቪពࡌᎩፎᤁᖸଋЙᎩଋЙᎩពࡌᎩፎᤁᖸጲ٧ၿ٧ࠓ᧙Џጛ༡ܖᡐཁᡐཁጻཁጻཁᐎᎩᰣᎩᎀߚనҫ٧ኃብኃብኃብኃብኃብኃብ探索之旅路线图虽然Web服务器在收到订单数据之后和销售系统一起对订单进行实际处理的操作很复杂但其实浏览器和Web服务器之间的交互却很简单概括如下。()浏览器向Web服务器发送请求。()Web服务器根据请求向浏览器发送响应。探索之旅指南FCเ٧$*ᎩӴҮనҫ٧ቪFCనҫ٧ር$*ᎩӴҮࠆਖ਼ቪពࡌᎩፎᤁᖸଋЙᎩଋЙᎩពࡌᎩፎᤁᖸጲ٧ၿ٧ࠓ᧙Џጛ༡ܖᡐཁᡐཁጻཁጻཁᐎᎩᰣᎩᎀߚనҫ٧ኃብኃብኃብኃብኃብኃብ因此从这个层面上也就是浏览器和Web服务器等网络应用程序进行交互的层面上来看其工作方式应该还是比较容易理解的。这个层面上的交互和人类之间的对话非常相似从这一点来说也更加容易理解A。A 尽管思路很简单但实际编写这些应用程序并不容易需要事无巨细地设计好所有的功能还要编写大量的代码才能完成。本书的结构要实现应用程序之间的交互我们需要一个能够在浏览器和Web服务器之间传递请求和响应的机制。网络是由很多计算机等设备相互连接组成的因此在通信的过程中需要确定正确的通信对象并将请求和响应发送给它们。请求和响应在传递的过程中可能会丢失或损坏A因此这些情况也必须要考虑到。所以说我们需要一种机制无论遇到任何情况都能够将请求和响应准确无误地发送给对方。由于请求和响应都是由和组成的数字信息所以可以说我们需要的是一种能够将数字信息搬运到指定目的地的机制。这种机制是由操作系统中的网络控制软件以及交换机、路由器等设备分工合作来实现的它的基本思路是将数字信息分割成一个一个的小块然后装入一些被称为ldquo包rdquo(Packet)的容器中来运送。ldquo包rdquo这个词大家可能在用手机的时候经常会碰到B但在这里类似于邮政和快递中的概念。大家可以这样理解:包相当于信件或者包裹而交换机和路由器则相当于邮局或快递公司的分拣处理区。包的头部存有目的地等控制信息通过许多交换机和路由器的接力就可以根据控制信息对这些包进行分拣然后将它们一步一步地搬运到目的地。无论是家庭和公司里的局域网还是外面的互联网它们只是在规模上有所不同基本的机制都是相同的。前面介绍的这个负责搬运数字信息的机制再加上浏览器和Web服务器这些网络应用程序这两部分就组成了网络。也就是说这两部分组合起来就是网络的全貌。本书将通过章的内容带领大家逐一探索其中的各个环节。第章 Web浏览器我们将首先探索浏览器的工作方式。大家可以认为我们的探索之旅是A 请求和响应的本质都是电信号和光信号这些信号可能会因受到杂音等的干扰而损坏。B 在日语中Packet一词在手机中指的是ldquo移动数据流量rdquo这个词来自最早的移动数据网络GPRS(GeneralPacketRadioService)中的P。mdashmdash译者注探索之旅指南从在浏览器中输入网址(URL)开始的。例如当我们输入下面这样的网址时浏览器就会按照一定的规则去分析这个网址的含义然后根据其含义生成请求消息。http:wwwlabglasscomcomsamplehtml在上面这个例子中浏览器生成的请求消息表示ldquo请给我samplehtml这一文件中储存的网页数据rdquo接着浏览器会将请求消息发送给Web服务器。当然浏览器并不会亲自负责数据的传送。传送消息是搬运数字信息的机制负责的工作因此浏览器会委托它将数据发送出去。具体来说就是委托操作系统中的网络控制软件将消息发送给服务器。第章中我们会探索到浏览器将数据委托出去为止。第章 协议栈、网卡第章我们将探索搬运数据的机制。其中最先出场的是协议栈(网络控制软件叫作协议栈)。这个软件会将从浏览器接收到的消息打包然后加上目的地址等控制信息。如果拿邮局来比喻就是把信装进信封然后在信封上写上收信人的地址。这个软件还有其他一些功能例如当发生通信错误时重新发送包或者调节数据发送的速率等或许我们可以把它当作一位帮我们寄信的小秘书。接下来协议栈会将包交给网卡(负责以太网或无线网络通信的硬件)。然后网卡会将包转换为电信号并通过网线发送出去。这样一来包就进入到网络之中了。第章 集线器、交换机、路由器接下来出场的物品会根据接入互联网的形式不同而不同。客户端计算机可以通过家庭或公司的局域网接入互联网也可以单独直接接入互联网。本书的结构很遗憾我们的探索之旅无法涵盖所有这些可能性因此只能以现在最典型的场景为例假设客户端计算机是连接到家庭或公司的局域网中然后再通过ADSL和光纤到户(FTTH)等宽带线路接入互联网。在这样的场景中网卡发送的包会经过交换机等设备到达用来接入互联网的路由器。路由器的后面就是互联网网络运营商会负责将包送到目的地就好像我们把信投到邮筒中之后邮递员会负责把信送给收件人一样。第章 接入网、网络运营商接下来数据从用来接入互联网的路由器出发进入了互联网的内部。互联网的入口线路称为接入网。一般来说我们可以用电话线、ISDN、ADSL、有线电视、光线、专线等多种通信线路来接入互联网这些通信线路统称为接入网。接入网连接到签约的网络运营商并接入被称为接入点(PointofPresencePoP)的设备。接入点的实体是一台专为运营商设计的路由器我们可以把它理解为离你家最近的邮局。从各个邮筒中收集来的信件会在邮局进行分拣然后被送往全国甚至全世界互联网也是一样网络包首先通过接入网被发送到接入点然后再从这里被发送到全国甚至全世界。接入点的后面就是互联网的骨干部分了。在骨干网中存在很多运营商和大量的路由器这些路由器相互连接组成一张巨大的网而我们的网络包就在其中经过若干路由器的接力最终被发送到目标Web服务器上。其中的具体细节我们会在正文中进行讲解但其实它的基本原理和家庭、公司中的路由器是相同的。也就是说无论是在互联网中还是在家庭、公司的局域网中包都是以相同的方式传输的这也是互联网的一大特征。不过运营商使用的路由器可跟我们家用的小型路由器不一样它是一种可以连接几十根网线的高速大型路由器。在互联网的骨干部分存在着大量的这种路由器它们之间以复杂的形式连接起来而网络包就在这些路由器之间穿行。探索之旅指南此外路由器不但在规模上存在差异在路由器间的连接方式上也存在差异。家庭和公司局域网中一般采用以太网线进行连接而互联网中除了以太网线连接之外还会使用比较古老的电话技术和最新的光通信技术来传送网络包。这一部分所使用的技术是当今网络中最热门的部分可以说是最尖端技术的结晶。第章 防火墙、缓存服务器通过骨干网之后网络包最终到达了Web服务器所在的局域网中。接着它会遇到防火墙防火墙会对进入的包进行检查。大家可以把防火墙想象成门口的保安他会检查所有进入的包看看有没有危险的包混在里面。检查完之后网络包接下来可能还会遇到缓存服务器。网页数据中有一部分是可以重复利用的这些可以重复利用的数据就被保存在缓存服务器中。如果要访问的网页数据正好在缓存服务器中能够找到那么就可以不用劳烦Web服务器直接从缓存服务器读出数据。此外在大型网站中可能还会配备将消息分布到多台Web服务器上的负载均衡器还有可能会使用通过分布在整个互联网中的缓存服务器来分发内容的服务。经过这些机制之后网络包才会到达Web服务器。第章 Web服务器当网络包到达Web服务器后数据会被解包并还原为原始的请求消息然后交给Web服务器程序。和客户端一样这个操作也是由操作系统中的协议栈(网络控制软件)来完成的。接下来Web服务器程序分析请求消息的含义并按照其中的指示将数据装入响应消息中然后发回给客户端。响应消息回到客户端的过程和之前我们介绍的过程正好相反。当响应到达客户端之后浏览器会从中读取出网页的数据并在屏幕上显示出来。到这里访问Web服务器的一系列操作就全部完成了我们的探索之旅也到达了终点。浏览器生成消息浏览器、Web服务器、网址(URL)、HTTP、HTML、协议、URI、请求消息、解析器、Socket库、DNS服务器、域名用电信号传输TCPIP数据TCPIP、套接字、协议栈、IP地址、端口号、包、头部、网卡、网卡驱动、MAC地址、以太网控制器、ICMP、UDP从网线到网络设备局域网(LAN)、双绞线、串扰、中继式集线器、MDI、MDIX、交换式集线器、全双工、半双工、碰撞、自动协商、路由器、路由表、子网掩码、默认网关、分片、地址转换、公有地址、私有地址通过接入网进入互联网内部ADSL、FTTH、光纤、接入网、ADSLModem集成式路由器、ATM、信元、正交振幅调制、分离器、DSLAM、宽带接入服务器、远程接入服务器、PPP、网络运行中心(NOC)、光纤、IX(InterneteXchange互联网交换)服务器端的局域网中有什么玄机防火墙、包过滤、数据中心、轮询、负载均衡器、缓存服务器、代理、代理服务器、内容分发服务、重定向请求到达Web服务器响应返回浏览器响应消息、多任务、多线程、虚拟目录、CGI、表单、访问控制、密码、数据格式、MIMEᎩፎଉጉJDSPTPGU*OUFSOFUYQMPSFS#ڠڦᣀҁଋᎃᣣ௬ᇧХү)அᘨᎩᮅ௬ᇧ*OUFSOFU㑾㐉ᣏNJNJᤇषᎩᮅᝌ᧕ᄉͺԓnjᎩᮅᄉஜФЙᄉڎஜ௦ѫѾgammaߚڙʿՎᄉὋՋڙʶᡐࡂጷʶषᎩᮅnjၿឳᄉୱͺ௦ՉѫѾ੯ᛠᄉὋځڎ௦ᄰበᄉὋᤇࡂᅋឳᄉୱͺ௦ᄰበ੯ᛠᄉnjᎩፎଉጉJDSPTPGU*OUFSOFUYQMPSFS#ڠڦᣀҁଋᎃᣣ௬ᇧХү)அᘨᎩᮅ௬ᇧ*OUFSOFU网络是怎样连接的mdashmdash本书中涉及的主要关键词浏览器生成消息浏览器、Web服务器、网址(URL)、HTTP、HTML、协议、URI、请求消息、解析器、Socket库、DNS服务器、域名用电信号传输TCPIP数据TCPIP、套接字、协议栈、IP地址、端口号、包、头部、网卡、网卡驱动、MAC地址、以太网控制器、ICMP、UDP从网线到网络设备局域网(LAN)、双绞线、串扰、中继式集线器、MDI、MDIX、交换式集线器、全双工、半双工、碰撞、自动协商、路由器、路由表、子网掩码、默认网关、分片、地址转换、公有地址、私有地址通过接入网进入互联网内部ADSL、FTTH、光纤、接入网、ADSLModem集成式路由器、ATM、信元、正交振幅调制、分离器、DSLAM、宽带接入服务器、远程接入服务器、PPP、网络运行中心(NOC)、光纤、IX(InterneteXchange互联网交换)服务器端的局域网中有什么玄机防火墙、包过滤、数据中心、轮询、负载均衡器、缓存服务器、代理、代理服务器、内容分发服务、重定向请求到达Web服务器响应返回浏览器响应消息、多任务、多线程、虚拟目录、CGI、表单、访问控制、密码、数据格式、MIMEᎩፎଉጉJDSPTPGU*OUFSOFUYQMPSFS#ڠڦᣀҁଋᎃᣣ௬ᇧХү)அᘨᎩᮅ௬ᇧ*OUFSOFU㑾㐉ᣏNJNJᤇषᎩᮅᝌ᧕ᄉͺԓnjᎩᮅᄉஜФЙᄉڎஜ௦ѫѾgammaߚڙʿՎᄉὋՋڙʶᡐࡂጷʶषᎩᮅnjၿឳᄉୱͺ௦ՉѫѾ੯ᛠᄉὋځڎ௦ᄰበᄉὋᤇࡂᅋឳᄉୱͺ௦ᄰበ੯ᛠᄉnjᎩፎଉጉJDSPTPGU*OUFSOFUYQMPSFS#ڠڦᣀҁଋᎃᣣ௬ᇧХү)அᘨᎩᮅ௬ᇧ*OUFSOFU通过阅读本书大家可以了解从在浏览器中输入网址到显示出网页内容这一过程中的具体原理。各章的结构各章的内容分为热身问答、探索之旅的看点、正文、小测验几个部分还有若干个专栏。热身问答在各章的开头有一些简单的热身题都是判断对错的题目大家一定要试试看。探索之旅的看点探索之旅的看点总结了正文将要介绍的主题可以以此来了解该章的梗概。正文熟悉了看点之后就该正式出发了。在这一部分我们将邀请经验丰富的导游来进行讲解相信即便是不具备任何网络知识的读者也能够想象出现实中网络的样子。请大家静下心来慢慢欣赏。小测验这是一些和正文内容相关的测试题大家可以用这些题目来确认自己的理解程度。答案位于下一页中的专栏的最后。专栏ldquo网络术语其实很简单rdquo在专栏中探索队长和探索队员会以对话的形式介绍一些网络术语的词源。这些术语大家平时可能感觉很难但通过了解它们的词源就能够理解其本质含义。读完这部分会让你觉得这些术语变得亲切了。关于插图在画图时一般来说箭头都是从左到右绘制的但本书则正好相反是从右到左绘制的这是为了和介绍包格式的图以及介绍信号波形的图的位置关系保持一致。箭头的方向和一般的习惯相反这一点希望大家理解。目录浏览器生成消息mdashmdash探索浏览器内部emsp生成HTTP请求消息emsp探索之旅从输入网址开始浏览器先要解析URL省略文件名的情况HTTP的基本思路生成HTTP请求消息发送请求后会收到响应emsp向DNS服务器查询Web服务器的IP地址emspIP地址的基本知识域名和IP地址并用的理由Socket库提供查询IP地址的功能通过解析器向DNS服务器发出查询解析器的内部原理emsp全世界DNS服务器的大接力emspDNS服务器的基本工作域名的层次结构寻找相应的DNS服务器并获取IP地址通过缓存加快DNS服务器的响应emsp委托协议栈发送消息emsp数据收发操作概览创建套接字阶段连接阶段:把管道接上去通信阶段:传递消息断开阶段:收发数据结束COLUMN网络术语其实很简单怪杰Resolveremspemsp生成HTTP请求消息emspemsp向DNS服务器查询Web服务器的IP地址emspemsp全世界DNS服务器的大接力emspemsp委托协议栈发送消息emsp第章用电信号传输TCPIP数据mdashmdash探索协议栈和网卡emsp创建套接字emsp 协议栈的内部结构套接字的实体就是通信控制信息调用socket时的操作emsp连接服务器emsp连接是什么意思负责保存控制信息的头部连接操作的实际过程emsp收发数据emsp将HTTP请求消息交给协议栈对较大的数据进行拆分使用ACK号确认网络包已收到根据网络包平均往返时间调整ACK号等待时间使用窗口有效管理ACK号ACK与窗口的合并接收HTTP响应消息emsp从服务器断开并删除套接字emsp数据发送完毕后断开连接删除套接字数据收发操作小结emspIP与以太网的包收发操作emsp包的基本知识包收发操作概览生成包含接收方IP地址的IP头部生成以太网用的MAC头部通过ARP查询目标路由器的MAC地址以太网的基本知识将IP包转换成电或光信号发送出去给网络包再加个控制数据向集线器发送网络包接收返回包将服务器的响应包从IP传递给TCPemspUDP协议的收发操作emsp不需要重发的数据用UDP发送更高效emsp连接服务器emspemsp收发数据emspemsp从服务器断开并删除套接字emspemspIP与以太网的包收发操作emspemspUDP协议的收发操作emsp第章控制用的短数据音频和视频数据COLUMN网络术语其实很简单插进Socket里的是灯泡还是程序emsp从网线到网络设备mdashmdash探索集线器、交换机和路由器emsp信号在网线和集线器中传输emsp每个包都是独立传输的防止网线中的信号衰减很重要ldquo双绞rdquo是为了抑制噪声集线器将信号发往所有线路emsp交换机的包转发操作emsp交换机根据地址表进行转发MAC地址表的维护特殊操作全双工模式可以同时进行发送和接收自动协商:确定最优的传输速率交换机可同时执行多个转发操作emsp路由器的包转发操作emsp路由器的基本知识路由表中的信息路由器的包接收操作查询路由表确定输出端口找不到匹配路由时选择默认路由包的有效期通过分片功能拆分大网络包路由器的发送操作和计算机相同路由器与交换机的关系emsp路由器的附加功能emsp通过地址转换有效利用IP地址地址转换的基本原理改写端口号的原因从互联网访问公司内网路由器的包过滤功能emsp信号在网线和集线器中传输emspemsp交换机的包转发操作emspemsp路由器的包转发操作emspemsp路由器的附加功能emsp第章COLUMN网络术语其实很简单集线器和路由器换个名字身价翻倍?emsp通过接入网进入互联网内部mdashmdash探索接入网和网络运营商emspADSL接入网的结构和工作方式emsp互联网的基本结构和家庭、公司网络是相同的连接用户与互联网的接入网ADSLModem将包拆分成信元ADSL将信元ldquo调制rdquo成信号ADSL通过使用多个波来提高速率分离器的作用从用户到电话局噪声的干扰通过DSLAM到达BASemsp光纤接入网(FTTH)emsp光纤的基本知识单模与多模通过光纤分路来降低成本emsp接入网中使用的PPP和隧道emsp用户认证和配置下发在以太网上传输PPP消息通过隧道将网络包发送给运营商接入网的整体工作过程不分配IP地址的无编号端口互联网接入路由器将私有地址转换成公有地址除PPPoE之外的其他方式emsp网络运营商的内部emspPOP和NOC室外通信线路的连接emsp跨越运营商的网络包emsp运营商之间的连接运营商之间的路由信息交换与公司网络中自动更新路由表机制的区别IX的必要性运营商如何通过IX互相连接emspADSL接入网的结构和工作方式emspemsp光纤接入网(FTTH)emsp接入网中使用的PPP和隧道emspemsp网络运营商的内部emspemsp跨越运营商的网络包emsp第章COLUMN网络术语其实很简单名字叫服务器其实是路由器emsp服务器端的局域网中有什么玄机emspWeb服务器的部署地点emsp在公司里部署Web服务器将Web服务器部署在数据中心emsp防火墙的结构和原理emsp主流的包过滤方式如何设置包过滤的规则通过端口号限定应用程序通过控制位判断连接方向从公司内网访问公开区域的规则从外部无法访问公司内网通过防火墙防火墙无法抵御的攻击emsp通过将请求平均分配给多台服务器来平衡负载emsp性能不足时需要负载均衡使用负载均衡器分配访问emsp使用缓存服务器分担负载emsp如何使用缓存服务器缓存服务器通过更新时间管理内容最原始的代理mdashmdash正向代理正向代理的改良版mdashmdash反向代理透明代理emsp内容分发服务emsp利用内容分发服务分担负载如何找到最近的缓存服务器通过重定向服务器分配访问目标缓存的更新方法会影响性能COLUMN网络术语其实很简单当通信线路变成局域网emspemspWeb服务器的部署地点emspemsp防火墙的结构和原理emspemsp通过将请求平均分配给多台服务器来平衡负载emspemsp使用缓存服务器分担负载emspemsp内容分发服务emsp第章请求到达Web服务器响应返回浏览器mdashmdash短短几秒的ldquo漫长旅程rdquo迎来终点emsp服务器概览emsp客户端与服务器的区别服务器程序的结构服务器端的套接字和端口号emsp服务器的接收操作emsp网卡将接收到的信号转换成数字信息IP模块的接收操作TCP模块如何处理连接包TCP模块如何处理数据包TCP模块的断开操作emspWeb服务器程序解释请求消息并作出响应emsp将请求的URI转换为实际的文件名运行CGI程序Web服务器的访问控制返回响应消息emsp浏览器接收响应消息并显示内容emsp通过响应的数据类型判断其中的内容浏览器显示网页内容!访问完成!COLUMN网络术语其实很简单Gateway是通往异世界的入口emsp附录emsp后记emsp致谢emsp作者简介emspemsp服务器概览emspemsp服务器的接收操作emspemspWeb服务器程序解释请求消息并作出响应emspemsp浏览器接收响应消息并显示内容emsp第章在开始探索之旅之前我们准备了一些和本章内容有关的小题目请大家先试试看。这些题目是否答得出来并不影响接下来的探索之旅因此请大家放轻松。下列说法是正确的(radic)还是错误的(times)?http:wwwnikkeibpcojp中的www代表WorldemspWideemspWeb协议(对通信操作规则所作的定义)。个人也可以申请注册互联网中的域名。浏览器等网络应用程序实际上并不具备网络控制功能。第章浏览器生成消息mdashmdash探索浏览器内部times。http:wwwnikkeibpcojp中的www只是Web服务器上的一种命名。而且WorldemspWideemspWeb也不是一个协议的名字而是Web的提出者最早开发的浏览器兼HTML编辑器的名字。emspradic。如果是ldquocomrdquoldquonetrdquoldquoorgrdquoldquojprdquo(除ldquocojprdquoldquonejprdquo等ldquoxxjprdquo格式的域名外)A等没有对注册对象范围进行限制的域名任何个人都可以申请注册。此外也有一种ldquonamerdquo域名是专门为个人申请者准备的。emspradic。应用程序并不是自己去控制网络而是委托操作系统来控制网络。A 中国的情况类似个人可以申请ldquocnrdquo域名但ldquocomcnrdquoldquonetcnrdquo等域名则是不开放给个人注册的。此外日本的域名体系中ldquojprdquo下级的域名用的是两个字母的命名例如ldquocojprdquoldquonejprdquo而中国使用的是三个字母的命名例如ldquocomcnrdquoldquonetcnrdquo。mdashmdash译者注探索之旅即将出发出发之前我们先来介绍一下本次的看点。FCเ٧$*ᎩӴҮనҫ٧ቪFCనҫ٧ር$*ᎩӴҮࠆਖ਼ቪពࡌᎩፎᤁᖸଋЙᎩଋЙᎩពࡌᎩፎᤁᖸጲ٧ၿ٧ࠓ᧙Џጛ༡ܖᐎᎩᰣᎩᎀߚనҫ٧ኃብኃብኃብኃብኃብኃብ()生成HTTP请求消息本次探索之旅从用户在浏览器中输入网址(URL)开始。接下来浏览器的工作会从对用户输入的网址进行解析开始。浏览器如何解析网址就是我们的第一个看点。然后浏览器会根据网址的含义来生成请求消息。浏览器通过请求消息将用户需要哪些数据告知服务器而请求消息实际的样子就是我们的第二个看点。只要理解了具体的消息长什么样我们也就能够理解访问Web服务器时使用的HTTP协议的原理了。()向DNS服务器查询Web服务器的IP地址请求消息生成之后浏览器会委托操作系统向Web服务器发送请求但浏览器必须告诉操作系统接收方的IP地址才行因此浏览器必须先查出Web服务器的IP地址。网址中只有Web服务器的域名因此浏览器需要向DNS服务器查询域名对应的IP地址浏览器如何进行这一操作也是本第章 浏览器生成消息章看点之一。()全世界DNS服务器的大接力这时我们的旅程进入到了DNS服务器帮助浏览器查询IP地址这一环节了。全世界共有上万台DNS服务器它们相互接力才能完成IP地址的查询而它们进行接力的方法也是本章看点之一。()委托协议栈发送消息查询到IP地址之后浏览器就可以将消息委托给操作系统发送给Web服务器了但这个委托到底是如何完成的呢?这也是本章看点之一。ldquo委托给操作系统rdquo这句话看似简单但关于委托给操作系统其实有非常详细的规则必须要遵守这些规则才能完成操作。由于只有编写程序的人才需要精通这些规则所以面向一般读者的图书中几乎很少见到对这些规则的解释。不过对这些规则有个大概的理解还是会有很多好处的因为理解了向操作系统进行委托时的规则我们就能够明白做出某个委托时操作系统会给我们怎样的反馈这可以说是相当于具体地理解了网络的潜在能力。这一点对于没有编程经验的人来说也很重要。 生成HTTP请求消息 生成HTTP请求消息 探索之旅从输入网址开始我们的探索之旅从在浏览器中输入网址开始A在介绍浏览器的工作方式之前让我们先来介绍一下网址。网址准确来说应该叫URLB如果我说它就是以http:开头的那一串东西恐怕大家一下子就明白了但实际上除了ldquohttp:rdquo网址还可以以其他一些文字开头例如ldquoftp:rdquoldquofile:rdquoldquomailto:rdquoC等。之所以有各种各样的URL是因为尽管我们通常是使用浏览器来访问Web服务器的但实际上浏览器并不只有这一个功能它也可以用来在FTPD服务器上下载和上传文件同时也具备电子邮件客户端的功能。可以说浏览器是一个具备多种客户端功能的综合性客户端软件因此它需要一些东西来判断应该使用其中哪种功能来访问相应的数据而各种不同的URL就是用来干这个的比如访问Web服务器时用ldquohttp:rdquo而访问FTP服务器时用ldquoftp:rdquo。图列举了现在互联网中常见的几种URL根据访问目标的不同URL的写法也会不同。例如在访问Web服务器和FTP服务器时URL中会包含服务器的域名E和要访问的文件的路径名等而发邮件的URL则包A 某些情况下浏览器的工作是从点击网页中的一个链接开始大家可以认为这种情况与将链接中所包含的网址输入到浏览器的地址栏中是一样的。mdashmdash译者注B URL:UniformResourceLocator统一资源定位符。C 如果没有正确配置电子邮件软件则即使在地址栏中输入ldquomailto:rdquo也是无法正常工作的。D FTP:FileTransferProtocol文件传送协议。这是一种在上传、下载文件时使用的协议。使用FTP协议来传送文件的程序也被叫作FTP。E 域名:就是像wwwglasscomcom这样以句点()分隔的名称。关于域名节和节有详细说明。 探索之旅从输入网址开始第章 浏览器生成消息含收件人的邮件地址。此外根据需要URL中还会包含用户名、密码、服务器端口号A等信息。图 URL的各种格式用HTTP协议访问Web服务器时用户名(可省略)密码(可省略)Web服务器域名文件的路径名端口号(可省略)http:user:passwordwwwglasscomcom:dirfilehtm文件的路径名端口号(可省略)用FTP协议下载和上传文件时ftp:user:passwordftpglasscomcom:dirfilehtm用户名(可省略)密码(可省略)FTP服务器域名读取客户端计算机本地文件时计算机名(可省略)file:localhostc:pathfilezip文件的路径名发送电子邮件时邮件地址mailto:toneglasscomcom阅读新闻组的文章时新闻组名news:compprotocolstcpipA 端口号:节和第章的节有详细说明这里请大家理解为一个用来识别要连接的服务器程序的编号。不同的服务器程序会使用不同的编号例如Web是邮件是等。 生成HTTP请求消息尽管URL有各种不同的写法但它们有一个共同点那就是URL开头的文字即ldquohttp:rdquoldquoftp:rdquoldquofile:rdquoldquomailto:rdquo这部分文字都表示浏览器应当使用的访问方法。比如当访问Web服务器时应该使用HTTPA协议而访问FTP服务器时则应该使用FTP协议。因此我们可以把这部分理解为访问时使用的协议B类型C。尽管后面部分的写法各不相同但开头部分的内容决定了后面部分的写法因此并不会造成混乱。 浏览器先要解析URL浏览器要做的第一步工作就是对URL进行解析从而生成发送给Web服务器的请求消息。刚才我们已经讲过URL的格式会随着协议的不同而不同因此下面我们以访问Web服务器的情况为例来进行讲解。根据HTTP的规格URL包含图(a)中的这几种元素。当对URL进行解析时首先需要按照图(a)的格式将其中的各个元素拆分出来例如图(b)中的URL会拆分成图(c)的样子。然后通过拆分出来的这些元素我们就能够明白URL代表的含义。例如我们来看拆分结果图(c)其中包含Web服务器名称wwwlabglasscomcom以及文件的路径名dirfilehtml因此我们就能够明白图(b)中的URL表示要访问wwwlabglasscomcom这个Web服务器上路径名为dirfilehtml的文件也就是位于dir目录D下的filehtml这个文件(图)。A HTTP:HypertextTransferProtocol超文本传送协议。B 协议:通信操作的规则定义称为协议(protocol)。C 像ldquofile:rdquo这样的URL在访问时是不使用网络的因此说URL的开头部分表示的是协议类型并不完全准确也许理解为ldquo访问方法rdquo会更好一些。D 目录(directory)这个词的意思相当于Windows中的文件夹(folder)。 浏览器先要解析URL第章 浏览器生成消息图 Web浏览器解析URL的过程(b)URL示例http:wwwlabglasscomcomdirfilehtml(c)按照(a)中的元素对(b)进行解析的结果数据源(文件)的路径名Web服务器名http:wwwlabglasscomcom++dir++++filehtm

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/362
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部