zoukankan      html  css  js  c++  java
  • 《计算机网络 自顶向下方法》整理(六)链路层和局域网

    一、链路层概述

    术语定义:

    • 节点:运行链路层协议的任何设备均称为节点,包括主机、路由器、交换机和WiFi接入点;
    • 链路:沿着通信链路连接相邻节点的通信信道称为链路;
    • 链路层帧:在通过特定的链路时,传输节点将数据报封装在链路层帧中,并将该帧传送到链路中;

    1、链路层提供的服务

    链路层的基本服务都是将数据报通过单一通信链路从一个节点移动到相邻的节点,但所提供服务的细节随着链路层协议的不同而变化。服务包括如下:

    • 成帧:在每个网络层数据报经链路传送之前,几乎所有的链路层协议都将其用链路层帧封装起来;一个帧由一个数据字段和若干首部字段组成,网络层数据报就插在数据字段中。帧的结构由链路层协议规定;
    • 链路接入:媒体访问控制协议(Medium Access Control MAC)规定了帧在链路上的传输的规则,当存在多路访问问题时,MAC协议用于协调多个节点的帧传输;
    • 可靠交付:保证无差错的经链路层移动每个网络层数据报,链路层的可靠交付服务通常是通过确认和重传取得的;
    • 差错检测和纠正:通过让发送节点在帧中包括差错检测比特,让接受节点进行差错检查,以此来完成这项工作;

    2、链路层在何处实现

    链路层的主体部分实在网络适配器(network adapter)中实现的,网络适配器有时也称作网络接口卡(NetWork Interface Card,NIC),位于网络适配器核心的是链路层控制器,该控制器通常是一个实现了许多链路层服务的专用芯片。

    在发送端,控制器将取得协议栈上层创建并存储在主机内存中的数据报,在链路层帧中封装该数据报,然后按照链路接入协议将帧传输到通信链路中。在接收端,控制器接收整个帧,并提取出网络层的数据报。如果链路层执行差错检测,则需要发送控制器在该帧的首部设置差错检测比特,由接受控制器执行差错检测

    二、差错检测和纠正技术

    这里我们研究3中患侧差错的技术,奇偶校验(描述差错检测和纠正背后隐藏的基本思想),检验和方法(更多的应用于运输层)和循环冗余检测(通常更多的应用在适配器中的链路层)

    1、奇偶校验

    差错检测最简单的方式就是用单个奇偶校验位。假设发送的信息D有d比特,将其划分为i行j列,对每行每列计算奇偶值,产生的i+j+1奇偶比特构成了链路层帧的差错检测比特。使用这种二维奇偶校验方案,包含比特值改变的列和行的校验值都将会出现差错。接收方检测和纠错的能力被称为前向纠错(EFC),它们可以减少所需的发送方重试次数,并且它允许接收方立即纠正差错,避免不得不等待的往返延时。

    2、检验和方法

    将d比特数据作为k比特整数的序列处理。一个简单的检验和方法就是将k比特整数加起来,并且用得到的和作为差错检测比特。因特网检验和就是基于这种方法

    3、循环冗余检测

    现今的计算机网络中使用最为广泛的差错检测技术就是基于循环冗余检测(CRC)编码,CRC编码也称为多项式编码。考虑d比特的数据D,发送方和接收方首先必须协商一个r+1比特模式,称为生成多项式,将其表示为G。这里要求G的最高有效位(最左边)的比特是1。

    CRC编码的关键思想是对于给定的数据段D,发送方选择r个附加比特R,并将它们附加到D上,使得到d+r比特模式,用模2算数(加法中不进位,减法中不借位,等价于操作数的按位异或)恰好能被G整除。过程如下:接收方用G去接受d+r比特,如果余数非零,则出现了差错

    三、多路访问链路和协议

    有两种类型的网络链路:点对点链路和广播链路。考虑一个重要的问题:如何协调多个发送和接受点对一个共享广播信道的访问,即多路访问问题。计算机网络中通过多路访问协议,来规范节点在共享的广播信道上的传输行为。

    多个节点可能同时传输帧,因而所有节点同时接收到多个帧,传输的帧在所有的接收方处会发生碰撞。当多个节点处于活跃状态时,为了确保广播信道的正常执行,需要以某种方式协调活跃的节点,而这正是多路访问协议的责任。这里将任何多路访问协议划分为3种:信道划分协议随机接入协议轮流协议

    在理想状态下,对于速率为R bps的广播信道,多路访问协议应该有以下所希望的特性:

    • 当仅有一个节点发送数据时,该节点具有R bps的吞吐量;
    • 当有M个节点发送数据时,每个节点的吞吐量为R/M bps(适当时间间隔内的平均传输速率);
    • 协议是分散的,不会因为某主节点故障而使得整个系统崩溃;
    • 协议是简单的,实现不会昂贵;

    1、信道划分协议

    时分多路复用(TDM)和频分多路复用(FDM)是两种能够用于在所有共享信道节点中划分广播信道带宽的技术。TDM将时间划分为时间帧,并将每个时间帧划分为时隙,每个时隙可以传输一个特定的发送-接受对,它消除了碰撞而且非常公平,当被限制为R/N的速率,其次它总是在等待它在传输序列中的轮次。FDM将信道划分为不同的频段,并把每个频段分配给N个节点中的一个。它具有TDM同样的优缺点。第三种信道划分协议是码分多址(CDMA),它为每个节点划分不同的编码,节点通过唯一编码对发送的数据进行编码,它使得不同的编码可以同时传输,并且接受方能够在知道编码的情况下正确的接受发送方的数据比特。

    2、随机接入协议

    在随机接入协议中,一个传输节点总是以信道的全部速率发送,当有碰撞时,涉及碰撞的每个节点反复重新发送它们的帧,但是在发生碰撞时,它并不是重发该帧,而是在重发该帧时进行时进行一个随机的等待,并且这些等待时延充分小于其他碰撞节点的时延。常用的随机接入协议有:ALOHA协议,CSMA协议等

    3、轮流协议

    ALOH及CSMA协议具备一个节点具有最高吞吐量的特性,但不具备本节中的第二个特性。轮流协议具有第二种特性,它有许多变种,这里我们讨论轮询协议(polling protocol)和令牌传递协议(token-passing protocol)

    轮询协议要求将节点之一指定为主节点,主节点以循环的方式轮询每个节点,如向节点1发送一个报文,告诉它能传递的最多的帧数,以此类推。该协议引入了轮询时延,即当只有一个节点时,节点传输的速率总是小于最大速率;并且当主节点有故障时,整个信道都变得不可操作。

    令牌传递协议将小的特殊帧(令牌)在节点间以某种特殊的次序进行交换,当某节点有帧要发送时,它才持有这个令牌,否则立即传递给下个节点。令牌传递是分散的,并且很有效率,但是如果某节点的故障可能使得整个信道故障。

    四、交换局域网

    1、链路层寻址和ARP

    1.1、MAC地址

    具有多个网络接口的主机或路由器具有与之相关联的多个链路层地址,就像它也具有与之相关联的多个IP地址一样,然而链路层交换机并不具有与它们接口相关联的链路层地址。链路交换机的任务是在主机和路由器之间承载数据,主机和路由器不必明确地将帧寻址到其间的交换机。链路层地址有不同的称呼:LAN地址物理地址MAC地址。MAC地址的长度为6字节,共有2^48个可能的MAC地址。IEEE在管理着该地址,该组织固定一个MAC地址的前24比特,让生产公司生成后24比特的唯一组合。

    当一个适配器要向某个目的适配器发送一个帧时,发送适配器将目的适配器的MAC地址插入到帧中,然后将帧发送到局域网中。交换机偶尔会将一个传入的帧广播到它的所有接口上。因此,一个适配器可能会接收到一个没有向它发送的帧。当适配器收到一个帧时,它将检查帧中的目的MAC地址是否与自己的MAC地址匹配。如果有匹配,适配器会提取封闭的数据报,并将数据报传递到协议栈。如果没有匹配,适配器就会丢弃该帧,而不将网络层的数据报传递上去。因此,当接收到该帧时,只有目的地才会被中断。

    1.2、地址解析协议

    因为存在网络层地址和链路层地址,所以需要在它们之间进行转换,对于因特网而言,这是地址解析协议(ARP)的任务。它可以看作是一个跨域了链路层和网络层边界的协议。

    为了发送数据报,源需要向它的适配器不仅提供IP数据报,还要提供目的主机的MAC地址,然后发送适配器将构造一个包含目的地的MAC地址的链路层帧,并把该帧发送进局域网。发送主机的ARP模块将以在相同局域网上的任何IP地址作为输入,然后返回相应的MAC地址。它与DNS相似,不同的是DNS将主机名解析为IP,ARP只为在同一个子网上的主机和路由器接口解析IP地址。

    每台主机或路由器在其内存中具有一个ARP表,这张表包含IP地址到MAC地址的映射关系,并且它包含一个寿命值TTL,它指示了从表中删除每个映射的时间。问题是ARP表是如何进行更新的?首先发送方构造一个称为ARP分组的特殊分组,一个ARP分组有几个字段包括发送和接受IP地址,以及MAC地址。ARP查询和响应都具有相同的格式,ARP查询分组会使用广播地址作为帧的目的地址,适配器把在该帧中的ARP分组向上传递给ARP模块。这些ARP模块将检查它的IP地址是否与ARP分组中的目的IP地址相匹配。匹配后将发回一个带有映射关系的响应ARP分组,查询主机将更新它的ARP分组并发送它的IP数据报,该数据报封装在一个链路层帧中。

    1.3、发送数据报到子网之外

    为了让数据报从子网1到子网2上的主机,数据报必须先发送到路由器接口,而这个接口是通往最终目的地路径上第一跳路由器的IP地址。因此,该帧合适的MAC地址是路由器接口的适配器地址。发送主机如何获取路由器的MAC地址?当然是使用ARP了! 一旦发送适配器获得了这个MAC地址,它就会创建一个帧(包含寻址到目的地址的数据报),并将该帧发送到子网1。子网1上的路由器适配器看到链路层的帧是向它寻址的,因此将该帧传给路由器的网络层。路由器现在必须确定数据报要转发的正确接口。这是通过查阅路由器中的转发表来完成的。转发表告诉路由器,数据报要通过路由器接口转发。然后这个接口将数据报传递给它的适配器,适配器将数据报封装在一个新的帧中,并将该帧发送到子网2中。这一次,帧的目的MAC地址确实是最终目的地的MAC地址。路由器是如何获得这个目的MAC地址的呢?当然是从ARP中获取

    2、以太网

    集线器是一种物理层设备,作用于单个比特而不是帧。当一个代表零或一的比特从一个接口到达时,集线器简单地重新创建比特,提高其能量强度,并将比特传输到所有其他接口上。每当集线器从它的一个接口接收到一个比特,它就会在所有其他接口上发送一个副本。特别是,如果一个集线器同时从两个不同的接口接收到帧,就会发生碰撞,创建帧的节点必须重新传输。如今集线器被交换机取代。它不仅是 "无碰撞 "的,而且是真正的存储和转发数据包交换机;但与路由器不同的是,路由器通过第三层操作,而交换机只通过第二层操作。

    2.1、以太网帧结构

    image-20201116223252044

    • 数据字段(46~1500字节):承载了IP数据报,以太网的最大传输单元MTU是1500字节,数据字段的最小长度为46字节,如果小于则填充,网络层会使用IP数据报首部中的长度字段来去除填充字段;
    • 目的地址(6字节):包含目的适配器的MAC地址,如匹配则将该帧数据字段的内容传递给网络层;
    • 源地址(6字节):包含传输该帧到局域网上的适配器的MAC地址;
    • 类型字段(2字节):允许以太网复用多种网络层协议;和网络层数据报中协议字段,运输层报文段的端口号类似,都是为了把一层中的某协议与上一层的某协议结合起来;
    • CRC(4字节):使得接受适配器检测帧中是否引入了差错;
    • 前同步码(8字节):前同步码的前7个字节都是10101010;最后一个字节是10101011,前7个字节用于唤醒接受适配器,并且将它们的时钟和发送方的时钟同步,第8个字节的最后两个比特(11)用于警告适配器,重要的内容要到了

    以太网技术向网络层提供无连接服务,即没有“握手”,所以是不可靠服务,当CRC校验出错时,接受方适配器将丢弃该帧(网络层使用TCP将引发重传)

    2.2、以太网技术

    如今普遍使用的以太网是基于交换机的星型拓扑结构,使用存储和转发数据包交换,交换机协调其传输,在任何时候都不会在同一个接口上转发多个帧。此外,现代交换机是全双工的,所以交换机和节点可以同时互送帧,互不干扰。换句话说,在基于交换机的以太网局域网中,没有任何碰撞,因此,不需要MAC协议

    3、链路层交换机

    交换机的作用是接收传入的链路层帧,并将其转发到传出链路上;交换机本身对子网中的主机和路由器是透明的;也就是说,一个主机/路由器将一个帧寻址给另一个主机/路由器(而不是将帧寻址给交换机),并愉快地将该帧送入局域网,而不知道有交换机将接收该帧并转发。帧到达交换机任何一个输出接口的速度可能会暂时超过该接口的链路容量。为了解决这个问题,交换机输出接口有缓冲区,就像路由器输出接口有数据报缓冲区一样。现在我们来仔细看看交换机的工作原理。

    3.1、交换机转发和过滤

    过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能;转发是决定一个帧应当被导向哪个接口,并把该帧移动到那些接口的交换机功能。交换机的过滤和转发借助于交换机表完成。交换机表包含了局域网中部分主机和路由器的表项,但不一定是全部。交换表中的一个表项包含:(1)一个MAC地址,(2)通向该MAC地址的交换接口,(3)表项被放入表中的时间。如果对于没有目的地址的表项,交换机广播该帧。

    3.2、自学习

    交换机有一个奇妙的特性,它的表是自动、动态、自治地建立的,不需要网络管理员或配置协议的任何干预。换句话说,交换机具有自学习能力。实现方式如下:

    1. 交换机表初始为空;
    2. 对于在每个接口收到的每个帧,该交换机在其中存储表项;
    3. 如果在一段时间后,交换机没有收到以该地址作为源地址的帧,就在表中删除这个地址;

    此外交换机是即插即用设备,且是全双工的,任何交换机接口都可以同时发送和接受;

    3.3、链路层交换机的性质

    优点:

    • 消除碰撞:在使用交换机(不使用集线器)构建的局域网中,没有因碰撞而浪费的带宽,交换机缓存帧并且不会再网段上同时传输多于一个帧;
    • 异质的链路:交换机将链路彼此隔离,因此局域网中不同的链路能够以不同的速率运行,并且能够在不同的媒体上运行;
    • 管理:如果一个适配器工作异常并持续发送以太网帧,交换机能够检测到该问题,并在内部断开异常适配器;

    3.4、交换机和路由器的比较

    路由器是使用网络层地址转发分组的存储转发分组交换机,虽然交换机也是存储转发分组交换机,但它与路由器的根本区别在于它使用MAC地址转发分组。路由器是一个第3层分组交换机,交换机是一个第2层分组交换机。

    交换机的优缺点:即插即用,具有较高的分组过滤和转发速率;大型交换网络将生成客观的ARP流量和处理量,无保护措施;

    路由器的优缺点:没有生成树限制,允许以丰富的拓扑结构构建因特网,对第二层的广播风暴提供了防火墙保护;不是即插即用,对每个分组的处理时间较长;

    image-20201117201525715

    4、虚拟局域网

    具有等级结构的局域网具有以下缺点:

    • 缺乏流量隔离:虽然层次结构将流量定位在一个交换机内,但广播流量仍然必须穿越整个机构网络。
    • 交换机的使用效率不高:如果该机构不是三个组,而是10个组,那么就需要10台一级交换机。如果每个组都很小,比如少于10人,那么一台96端口的交换机可能就足够大,可以容纳所有人,但是这台单台交换机无法提供流量隔离;
    • 管理用户:如果一个员工在组之间移动,必须改变物理布线;

    可以通过支持虚拟局域网络(VLAN)的交换机来解决上述问题。支持VLAN的交换机允许在一个物理局域网基础设施上定义多个虚拟局域网。一个VLAN内的主机相互通信,就像它们连接到交换机一样。但是将多个VLAN完全隔离,又引入了一个新的难题! 无法跨组传送数据?处理这个问题的方法之一是将一个VLAN交换机的端口连接到外部路由器上,并将该端口配置为同时属于不同的分组。交换机厂商通过构建一个既包含VLAN交换机又包含路由器的单一设备,让网管轻松完成这样的配置,所以单独的外部路由器是不需要的。

    VLAN交换机互连的一种更具扩展性的方法称为VLAN干线连接。每台交换机上的一个特殊端口被配置为干线端口,以实现两台VLAN交换机的互连。干线端口属于所有的VLAN,发送到任何一个VLAN的帧都会通过干线链路转发到其他交换机。但这又引起了另一个问题。交换机如何知道到达干线端口的帧属于某个特定的VLAN?IEEE定义了一种扩展的以太网帧格式,它由标准以太网帧和一个四字节的 VLAN 标签组成,在帧头中添加了该帧所属 VLAN 的标识。

    五、链路虚拟化:网络作为链路层

    从某种意义上说,因特网将电话网虚拟化,将电话网看作是提供两个主机之间链路层连接的技术。在本节中,我们将考虑多协议标签交换(MPLS)网络。与电路交换电话网不同的是,MPLS本身就是一个分组交换的虚拟电路网络。它有自己的包格式和转发行为...

    六、数据中心网络

    ...略...

    七、Web页面请求的历程

    假设启动一台笔记本电脑,然后将其连接到学校的以太网交换机,而以太网交换机又连接到学校的路由器上,学校的路由器连接到某ISP,该ISP为学校提供了DNS服务,因此,DNS服务器驻留在该ISP网络中,而不是学校网络中。此外我们假设DHCP服务器是运行在路由器内的。

    1、DHCP、UDP、IP和以太网

    1)笔记本电脑上的操作系统生成一个DHCP请求报文,并将这个报文放在具有目的端口(DHCP服务器)和源端口(DHCP客户)的UDP报文段中,该UDP报文段被放在一个具有广播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP数据报中;

    2)包含DHCP请求报文的IP数据报被放置在具有以太网帧中,该以太网帧具有目的MAC地址FF:FF:FF:FF:FF:FF,使得该帧广播到与交换机连接的所有设备(顺利的话会包含DHCP服务器),该帧的源MAC地址是笔记本电脑的MAC地址;

    3)包含DHCP请求的广播以太网帧是该笔记本电脑发送到以太网交换机的第一个帧,交换机将收到的帧广播到所有的输出端口,包括连接到路由器的端口;

    4)路由器的某个接口将接受到该广播以太网帧,该帧包含DHCP请求,并且可以从该帧中抽取出IP数据报,该数据报的广播IP目的地址指示了这个IP数据报应当由高层协议处理,所以数据报的有效载荷(一个UDP报文段)被分解并交由UDP处理。DHCP请求报文从此UDP报文段中抽取出来,此时DHCP服务器有了DHCP请求报文;

    5)假设在路由器中运行的DHCP服务器以CIDR块分配IP地址。DHCP服务器将地址分配给笔记本电脑后会创建了一个DHCP ACK报文,其中包含这个IP地址,以及DNS服务器的IP地址、默认网关路由器的IP地址和子网块(相当于 "网络掩码")。该DHCP被放入一个UDP报文段中,UDP报文段被放入一个IP数据报里面,IP数据报放在以太网帧中。以太网帧的源MAC地址是路由器通往归属地网络的接口,目的地是笔记本电脑的MAC地址

    6)包含 DHCP ACK 的以太网帧由路由器发送到交换机,因为交换机是自学习的,并且之前收到了笔记本电脑的以太网帧,所以交换机知道将笔记本电脑的MAC地址寻址到到通往该地址的输出端口;

    7)笔记本电脑接收到包含DHCP ACK的以太网帧,从以太网帧中提取IP数据报,从IP数据报中提取UDP段,从UDP段中提取DHCP ACK报文。然后DHCP客户端记录了它的IP地址和DNS服务器的IP地址。它还将默认网关的地址安装到IP转发表中。笔记本电脑将把所有目的地址在子网之外的数据报发送到默认网关。此时,该笔记本电脑已经初始化了它的网络组件,并准备好开始处理网页的获取;

    2、DNS和ARP

    当在Web浏览器中输入URL时,会开始一长串的事件,最终导致页面被Web浏览器显示。网络浏览器通过创建一个TCP套接字来开始这个过程,这个套接字将被用来发送HTTP请求。为了创建套接字,笔记本电脑需要知道URL对应网站的IP地址。DNS协议被用来提供这个名字到IP地址的转换服务。

    8)笔记本电脑上的操作系统因此创建了一个DNS查询消息,将URL字符串放在DNS报文的问题段中。这个DNS报文则被放置在一个目的端口为53(DNS服务器)的UDP报文段中。然后将UDP段放在一个IP数据报中,IP的目的地址为步骤5中DHCP ACK返回的DNS服务器地址,源IP地址为被分配的IP地址

    9)笔记本电脑将包含DNS请求报文的数据报放在一个以太网帧中。这个帧将被发送到(在链路层进行寻址)学校网络中的网关路由器。尽管笔记本电脑通过上面步骤5中的DHCP ACK消息知道了学校网关路由器的IP地址,但它并不知道网关路由器的MAC地址。为了获得网关路由器的MAC地址,笔记本电脑需要使用ARP协议

    10)笔记本电脑创建了一个目标IP地址为默认网关的ARP查询报文,将ARP查询报文放置在一个带有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并将以太网帧发送给交换机,交换机将该帧发送给所有连接的设备,包括网关路由器。

    11)网关路由器收到学校网络接口上包含ARP查询报文的帧,发现ARP报文中的目标IP地址与其接口的IP地址相匹配。因此,网关路由器准备了一个ARP回答,包含其IP地址对应的MAC地址。它将ARP回答放入以太网帧中,目的地址为笔记本电脑的MAC地址,并将该帧发送给交换机,交换机将该帧传送给笔记本电脑;

    12)笔记本电脑接收到包含ARP回答的帧,并从ARP回答中提取网关路由器的MAC地址;

    13)笔记本电脑现在可以将包含DNS查询的以太网帧寻址到网关路由器的MAC地址。该帧中的IP数据报的IP目的地址为DNS服务器,而该帧的目的地址为网关路由器。笔记本电脑将此帧发送到交换机,交换机将此帧传送给网关路由器。

    3、域内路由选择到DNS服务器

    14)网关路由器收到该帧后,提取出包含DNS查询的IP数据报,路由器查找该数据报的目的IP地址,并从其转发表中确定该数据报应发送到的路由器。IP数据报被放置在链路层帧中,该链路将学校路由器连接到合适的路由器,该帧通过该链路发送;

    15)合适的路由器接收到该帧后,提取IP数据报,检查数据报的目的地址IP,并根据它的转发表确定出接口,经过该接口朝着DNS服务器转发数据报,转发表已根据ISP域内协议及因特网的域间协议BGP填写

    16)最终,包含DNS查询的IP数据报到达DNS服务器。DNS服务器提取DNS查询报文,在其DNS数据库中查找URL对应的IP地址的DNS源记录。这个缓存数据起源于权威DNS服务器。DNS服务器形成一个包含这个主机名到IP地址映射的DNS回答报文,并将DNS回答报文放在UDP报文段中,该报文段放入寻址到笔记本电脑的IP数据报中。这个数据报将通过ISP的网络转发到学校的路由器,再从那里通过以太网交换机转发到笔记本电脑。

    17)笔记本电脑从DNS报文中提取出URL对应服务器的IP地址

    4、Web客户—服务器交互:TCP和HTTP

    18)现在笔记本已经有了URL的IP地址,它可以创建TCP套接字,用来向网站发送HTTP GET报文。当创建TCP套接字时,笔记本电脑中的TCP必须首先与网站服务器的TCP进行三次握手。因此笔记本电脑首先创建一个目的端口为80的TCP SYN报文段,将该TCP报文段放置在具有目的IP地址的IP数据报中,将该数据报放在一个目的MAC地址为网关路由器的帧中,然后将该帧发送给交换机。

    19)学校网络、ISP网络和网站网络中的路由器使用每个路由器中的转发表将包含TCP SYN的数据报转发到网站服务器, 路由器转发表项管理着ISP和网址服务器网络之间域间链路上数据包的转发,而这些转发表项是由BGP协议决定的;

    20)最终,包含TCP SYN的数据报到达服务器。从数据报中提取出TCP SYN报文,随后HTTP服务器和笔记本电脑之间的TCP连接生成一个连接套接字。一个TCP SYNACK报文段会被生成,并被放置在指向笔记本电脑的数据报中,最后被放置在链接层帧中,该链路适合将HTTP服务器和其第一跳路由器的链接。

    21)包含TCP SYNACK报文段的数据报通过HTTP服务器、ISP网络和学校网络转发,最终到达笔记本电脑中的以太网卡。该数据报在操作系统内被分解到步骤18中创建的TCP套接字,从而进入连接状态。

    22)笔记本上的套接字现在准备好向HTTP服务器发送字节了,笔记本浏览器创建了包含要获取的URL的HTTP GET报文。然后HTTP GET报文被写入套接字中,GET报文成为TCP报文段的载荷。TCP报文段被放在一个数据报中,并按照上面的步骤18-20发送并传递给HTTP服务器

    23)HTTP 服务器从 TCP 套接字中读取 HTTP GET报文,创建一个 HTTP 响应报文,将请求的网页内容放在 HTTP 响应报文的主体中,并将消息发送到 TCP 套接字中。

    24)包含HTTP响应报文的数据通过HTTP服务器、ISP网络和学校网络转发,并到达笔记本电脑。Web浏览器程序从套接字中读取HTTP响应,从HTTP响应体中提取网页的html,最后显示网页。

  • 相关阅读:
    c++ cout、cin、endl
    c++ namespace
    找到小镇的法官
    整数反转
    c++stack类的用法
    栈应用:最小栈(第二题)
    栈的压入、弹出序列(第一题)
    c++中vector类的用法
    Android 面试常问七道题
    传感器实现仿微信摇一摇功能
  • 原文地址:https://www.cnblogs.com/Jscroop/p/14054287.html
Copyright © 2011-2022 走看看