计算机网络自顶向下 —— 链路层(二)

前言

  继续说链路层

  web的请求 的三次我握手我写过一篇猝不及防的爱情

  详细的说了三次握手

  我是前端开发者

  其实web的请求每一天都有在用

  浏览器主动发起请求 请求成功后 服务器返回数据,拿到数据后,页面展示。

  这就是实际应用的一条龙服务

  然后再深入的了解一下web请求,我发现一位球友写的特别的详细,但是我找不到他的博客了,如果哪一天看到了。可以叫我注明出处。

正文

  • 数据字段: (46-1500字节) 以太网的最大传输单元(MTU)是1500字节,最小长度是46字节。Ip数据报小于46字节,数据包必须被填充到46字节。
  • 目的地址 目的地的MAC地址
  • 源地址 源地址的MAC地址
  • 类型字段 类型字段允许以太网复用多种网络层协议
  • CRC 循环冗余检测
  • 前同步码 以太网帧以一个8字节的前同步码字段开始,该前同步码的前7个字节都是10101010,最后一个字节是10101011。前7个字节用于唤醒接收适配器,并且将他们的时钟和发送方的时钟同步。
  • MAC地址空间为6字节, 2^48比特
  • IPv4: 4字节, 2^32比特
  • IPv6: 21字节, 2^128比特

DNS和ARP

  • Bob便携机上的操作系统生成DNS查询报文,将字符串www.google.com放入DNS报文的问题段中。该DNS报文则放置在一个具有53号目的端口的UDP报文段中。该UDP报文段则被放入具有IP目的地址的(68.87.71.226)和源IP地址(68.85.2.101)的IP数据报中。
  • Bob便携机则将包含DNS请求报文的数据报放入一个以太网帧中。该帧将发送到Bob学校的网络路由器,然而Bob便携机知道了学校的网关路由器的IP地址,但是不知道MAC地址,需要使用ARP协议查询。
  • Bob便携机生成一个具有目的IP地址68.85.2.1(默认网关)的ARP查询报文,将该查询报文放置在一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧交付给所有连接的设备,包括网关路由器。
  • 网关路由器在通往学校网络的接口上接受到包含该ARP查询报文的帧, 发现在ARP报文中目标IP地址68.85.2.1匹配其接口的IP地址。网关路由器因此准备一个ARP回答,指示他的MAC地址00:22:6B:45:1F:1B对应IP地址68.85.2.1。它将ARP回答放在一个以太网帧中,并向交换机发送该帧,再由交换机将帧交付给Bob便携机。
  • Bob便携机接收包含ARP回答报文的帧,并从ARP回答报文中抽取网关路由器的MAC地址。

以下内容来自球友

WEB页面请求的历程

第一步:准备:通过DHCP、UDP等获取本机的动态IP

(1)Bob的PC机首先生成DHCP请求报文,放入目的端口67和源端口68的UDP报文段。报文段放入广播目的IP地址(255.255.255.255)和源IP地址(0.0.0.0)的IP数据报中。

(2)包含DHCP请求的数据报被放入以太网帧中,目的MAC地址为广播地址FF:FF:FF:FF:FF:FF,源MAC地址为PC适配器MAC地址。该帧在交换机所有出口端广播。

(3)路由器接口(MAC地址:00:22:6B:45:1F)接收到该帧,抽取出IP数据报。广播IP地址表示该IP数据报需要节点的高层协议处理,所以分解出UDP报文上传UDP。DHCP服务器从UDP报文段中得到该请求报文。

(4)服务器生成DHCP ACK报文,包括分配给PC的IP地址、DNS服务器IP地址、默认网关路由器IP地址(68.85.2.1)、子网块(68.80.2.0/24)。该报文放入UDP、IP数据报、以太网帧中,目的MAC地址为PC的MAC地址、源MAC地址为路由器刚刚收到帧的子网接口的MAC地址。

(5)ACK报文发送到交换机。由于交换机通过自学习,之前从PC接收帧的时候得到MAC地址和端口的映射,所以直接将帧从连接PC的接口转发。

(6)PC接收到帧,一步步抽取出ACK报文,记录下自己的IP地址、DNS服务器地址。配置IP转发表的默认网关,将目的地址为子网块之外的所有数据报发送向默认网关。

第二步:仍在准备:通过ARP查询DNS

(1)Bob的PC机生成DNS查询报文,www.google.com放入报文的问题段。DNS报文放入端口号53的UDP报文段中,UDP报文段目的IP为DNS服务器的IP地址,源IP地址为PC的IP地址的IP数据报,但是缺少默认网关的目的MAC地址(只知道IP地址)。

(2)PC发送查询默认网关MAC地址的ARP查询报文,放入广播目的地址的以太网帧。向交换机发送该帧,交换机将该帧转发给所有出口端。网关路由器收到查询报文后,准备ARP回答,包括默认网关IP和对应的MAC地址。将ARP回答放入以太网帧,目的MAC地址为PC的MAC地址。发送该帧,通过交换机交付给PC。

(3)PC获取该帧,抽取得到网关路由器的MAC地址。将步骤(1)中的数据报放入以太网帧,目的MAC地址为网关路由器的MAC地址。将帧发送给交换机,交付给网关路由器。

第三步:仍在准备:通过DNS查询到网站的IP

(1)网关路由器接收帧,抽取IP数据报。根据目的地址和转发表,决定下一跳路由器。将IP数据报放入链路层帧,发送至下一跳路由–comcast最左边路由器。

(2)comcast最左边路由器接收到帧,抽取IP数据报,根据目的IP地址和转发表确定出口,向DNS服务器转发数据报。转发表已经根据域内路由协议和域间路由协议填好。

(3)DNS服务器收到IP数据报,抽取出DNS查询报文,找到对应的IP地址,生成DNS回答报文,放入UDP报文段,反向寻址到学校路由器,最后通过交换机到PC。

(4)PC从DNS报文中抽取出www.google.com对应的IP地址。

第四步:WEB客户通过TCP和HTTP与服务器交互

(1)PC生成一个目的端口号80的TCP SYN报文段,放入目的IP为谷歌的(www.google.com)IP地址的数据报中,将该数据报放置在MAC地址为00:22:6B:45:1F:1B(网关路由器)的帧中,并向交换机发送。

(2)该数据报通过学校网络、comcast网络、谷歌网络到达谷歌服务器,服务器分配资源,产生TCP SYNACK报文段,放入数据报,反向到达PC。PC形成套接字,进入连接状态,第三次握手与之后的HTTP请求一起发送。

(3)PC的浏览器生成获取URL的HTTP GET报文,写入套接字。生成的TCP报文段放入一个IP数据报中,到达谷歌服务器。

(4)谷歌HTTP服务器从TCP套接字读取HTTP GET报文,生成HTTP响应报文,将请求的页面内容放入HTTP报文实体,将响应报文放入套接字,生成的TCP报文段放入IP数据报,经过网络到达PC。

(5)PC的浏览器从套接字读取HTTP响应,从实体中抽取页面的html,终于显示web页面。

原文地址:https://www.cnblogs.com/ifannie/p/11186514.html

时间: 2024-10-31 07:53:26

计算机网络自顶向下 —— 链路层(二)的相关文章

计算机网络自顶向下方法【二】

这周看了第二章,应用层的前两小节.B站上找了个大连理工的线上教育.听了一节感觉还不错,后面要和视频结合着把这本书啃了. 其实一开始这本书看了难度也不是很大,但谁让我还有匡扶汉室的责任在身呢…… 应用层,听说中国软件大多都在应用层上编写.协议们支持着应用层.协议就像我们工作量写接口似得,写个接口文档,告诉人接受的参数格式.或者像是调用一个未知方法,看到形参就差不多知道怎么用了. 客户端与服务端,又一次让我加深印象,客户端是索取,服务端是给予. 运输服务,通信的概念吧应该.运输层,主要就TCP与UD

计算机网络自顶向下方法第6章-链路层和局域网.2

6.5 链路虚拟化:网络作为链路层 多协议标签交换 MPLS 通过来自虚电路网络的一个关键概念—固定长度标签,可以改善 lP 路由器的转发速度. 其目标是使用转发 lP 数据报的路由设备,但却是基于固定长度标签和虚电路的技术,让路 由器根据固定长度的标签转发数据报(而不是目的地 IP 地址),从而加快转发速度(标签长 度固定.较小的标签空间这两个特点加快了查表速度). 6.6 数据中心网络 因特网公司如FLAG构建了大量数据中心,每个数据中心容纳数十万太主机,同时支持着不同云应用.每个数据中心有

TCP/IP协议简介(二) 之 链路层介绍

链路层介绍 一.简介 上一节已经介绍过,网络层协议的数据单元是 IP 数据报 ,而数据链路层的工作就是把网络层交下来的 IP 数据报 封装为 帧(frame)发送到链路上,以及把接收到的帧中的数据取出并上交给网络层. 为达到这一目的,数据链路必须具备一系列相应的功能,主要有: 将数据封装为帧(frame),帧是数据链路层的传送单位: 控制帧的传输,包括处理传输差错,调节发送速率与接收方相匹配: 在两个网络实体之间提供数据链路通路的建立.维持和释放的管理. 数据帧的结构是这样的: 二.控制帧的传输

计算机网络——链路层协议

一. 链路层的功能 可靠交付:在高差错的链路,如无线链路,可以进行可靠交付:对于其它的有线,可以是多余的: 流量控制:防止接收方的缓存区溢出,帧丢失: 差错检测与差错纠正:在硬件上实现了: 二.多路访问协议 信道划分协议: 时分复用(TDM).频分复用(FDM). 码分多址(CDMA): 随机接入协议:以信道的全部速率进行传输,遇到碰撞就停下来, 等待随机的时间后再次发送: 时隙ALOHA:把每个节点的发送时间开始都是固定的.同步的(如12点.1点.2点--, 而不会12.04发送),间隔时间为

计算机网络——链路层

数据链路层:概述与服务 链路层主要使用的信道包括: 广播信道 : 这种信道采用一对多的广播通信方式,因此过程比较复杂.广播信道上主机众多,我们必须使用专用的共享信道协议来协调这些主机的数据发送 点对点信道 : 这种信道使用一对一的点对点通信方式 链路层提供的服务 链路层协议定义了在链路两端的节点之间交互的分组格式,以及当发送和接受分组时这些节点采取的动作. 链路层协议可能提供的服务包括: 服务 概述 成帧 在每个数据报传输时,用链路层帧将其封装起来.一个帧由首部,数据字段和尾部组成.链路层的数据

TCP/IP中最高大上的链路层详解(二)

引言 对于程序猿来讲,似乎越接近底层,就越显得高大上.这也算是程序猿们的共同认知吧,虽然不是所有人.今天LZ就和各位一起探讨一下TCP/IP中最高大上的一层,也就是最底层的链路层. 这一层LZ了解的还不够深刻,但是LZ还没有做硬件的打算,因此LZ觉得只要能够大致明白其原理即可,有的时候太执着了并不是好事,别忘了执着的同义词中有一个叫钻牛角尖. 链路层是什么 这个问题其实很好回答,在上一章LZ就提到过,直观的说,链路层就是我们平时接触的网卡和网卡的驱动程序(当然,也可以指其它的网络接口和驱动,比如

二、链路层

在TCP/IP协议族中,链路层主要有三个目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP发送RARP请求和接收RARP应答 2.1 概念 2.1.1 SLIP SLIP:Serial Line IP,它是一种在串行线路上对IP数据报进行封装的简单形式.适用于RS-232串行端口和高速调制解调器接入Internet. SLIP协议定义的帧格式: IP数据报以一个称作 END(0xc0)的特殊字符结束.同时,为了防止数据报到来之前的线路噪声被当成数据报内

[其他]计算机网络-自顶向下方法 学习笔记

计算机网络与因特网 Nobody no why, it just works! by Qijd 一.发展史 分组交换 1961-1972 专用网络和网络互联 开始产生TCP UDP等协议 网络的激增 1980-1990 因特网爆炸 29世纪90年代 万维网应用出现 二.基本构成 core - edge - resourse 资源子网与通信子网构成计算机网络 端系统通过 因特网服务提供商 ISP(InternetServiceProvider)接入因特网 端系统.分组交换机和其他因特网部件通过pr

链路层交换机

在总线拓扑和基于集线器的星形拓扑技术时代,以太网显然是一种广播链路.为了处理这些碰撞,以太网标准包括了 CSMA/CD 协议. 今天广为使用的以太网是基于交换机的星形拓扑,采用的是存储转发分组交换.在基于交换机的以太局域网中,不会有碰撞,因此没有必要使用 MAC 协议了! 交换机自身对子网中的主机和路由器是透明的 (transparent),即某主机/路由器向另一个主机/路由器寻址一个帧,而不是向交换机寻址该帧:且不知道某交换机将会接收该帧并将它转发到另一个结点. 类似路由器接口为数据报设有缓存