计算机网络——计算机网络体系结构(3/4)-计算机网络体系结构分层思想举例

简介: 计算机网络——计算机网络体系结构(3/4)-计算机网络体系结构分层思想举例

计算机网络体系结构分层思想举例


假设网络拓扑如下所示,主机属于网络N1,Web服务器属于网络N2,N1和N2通过路由器互连。

打开一个网页的简化过程:

我们使用主机中的浏览器来访问Web服务器,当输入网址后,主机会向Web服务器发送请求。Web服务器收到请求后,会发回相应的响应。主机的浏览器收到响应后,将其解析为具体的网页内容显示出来。

主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。

那么,体系结构的各层,在整个过程中起到了怎样的作用呢?

发送请求报文

应用层构建HTTP请求报文

从主机端按体系结构自顶向下的顺序来看,应用层按HTTP协议的规定,构建一个HTTP请求报文,这是该报文的内容:

   

应用层将HTTP请求报文交付给运输层处理。

运输层添加TCP首部

运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段。这是TCP报文段的首部格式:

该首部的主要作用是为了区分应用进程以及实现可靠传输。运输层将TCP报文段交付给网络层处理。

网络层添加IP首部

网络层给TCP报文段添加一个IP首部,使之成为IP数据报,这是IP数据报的首部格式:

该首部的作用主要是为了使IP数据报可以在互连网上传输,也就是被路由器转发。网络层将IP数据报交付给数据链路层处理。

数据链路层形成帧

数据链路层给IP数据报添加一个首部和一个尾部使之成为帧。假设网络N1是以太网,这是以太网帧首部的格式:

该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的主机接收,这是以太网帧尾部的格式:

其作用是为了让目的主机检查所接收到的帧是否有误码数据链路层将帧交付给物理层

物理层转化为比特流

物理层将帧看作是比特流。由于网络N1是以太网,因此物理层还会给该比特流前面添加前导码。这是前导码的内容:

其作用是为了让目的主机做好接收帧的准备。物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体。信号通过传输媒体到达路由器:

路由器处理

我们来看路由器的处理过程, image.png

1.物理层将信号变成比特流

2.去掉前导码后,将其交给数据链路层,实际上交付的是帧

3.数据链路层将帧的首部和尾部去掉后,将其交付给网络层,实际上交付的是IP数据报

4.网络层解析IP数据报的首部,从中提取出目的网络地址, 然后查找自身的路由表,确定转发端口,以便进行转发。


5.网络层再将IP数据报交付给数据链路层,数据链路层给IP数据报添加一个首部和尾部,使之成为帧



6.数据链路层将帧交付给物理层,物理层将添加有前导码的比特流变换成相应的信号发送给传输媒体。

7.信号通过传输媒体到达Web服务器

服务器处理

信号通过传输媒体到达Web服务器,我们来看Web服务器的处理过程。物理层将信号变换为比特流,去掉前导码后,将其交给数据链路层,这实际上交付的是帧;数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报;网络层将IP数据报的首部去掉后,将其交付给运输层,这实际上交付的是TCP报文段;运输层将TCP报文段的首部去掉后,将其交付给应用层,这实际上交付的是HTTP请求报文。

发回响应报文

应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文。与之前的过程类似,HTTP响应报文需要在Web服务器层层封装,然后通过物理层变换成相应的信号,再通过媒体传输到路由器。路由器转发该响应报文给主机,主机通过物理层将收到的信号转换为比特流。之后通过逐层解封,最终取出HTTP响应报文。


END



目录
相关文章
|
17天前
|
网络虚拟化 网络架构
计算机网络学习记录 网络层 Day4(下)(2)
计算机网络学习记录 网络层 Day4(下)(2)
16 0
|
17天前
|
算法 网络协议 网络架构
计算机网络学习记录 网络层 Day4(下)(1)
计算机网络学习记录 网络层 Day4(下)(1)
15 0
|
17天前
计算机网络学习记录 网络层 Day4(上)(2)
计算机网络学习记录 网络层 Day4(上)(2)
12 0
|
1月前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
47 1
|
1天前
|
Linux
linux网络统计信息和端口占用情况基本语法
linux网络统计信息和端口占用情况基本语法
|
9天前
|
网络协议 安全 Ubuntu
7 个有用的免费 Linux 网络隧道
【7月更文挑战第4天】
39 0
7 个有用的免费 Linux 网络隧道
|
21天前
|
安全 物联网 Linux
学习Linux对网络安全的重要性
**学习Linux对网络安全至关重要:** 1. 开源操作系统广泛应用于服务器、网络设备,掌握Linux是安全专家必备技能。 2. Linux内置安全特性,如最小权限和防火墙,加上丰富的安全工具,提供强大保障。 3. 可定制性允许灵活配置,满足安全需求,开源社区提供持续更新和教育资源。 4. 学习Linux能提升攻防能力,用于系统加固和渗透测试,适应跨平台安全场景。 5. 随着云计算和物联网发展,Linux在网络安全中的角色日益关键。
47 3
|
8天前
|
网络协议 Linux 开发工具
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
|
8天前
|
算法 网络协议 Shell
掌握Linux网络:深入理解TC —— 你的流量控制利器
目前需要做一款关于Linux下对于某IP限制的一个工具(QOS),在网上寻找了许多关于TC的教程,大多数都是一些比较基础的教学,且多数都是对网口的一些限制,然后自己研究了一段时间,最后有一些小小的了解,故在此分享给大家。
|
10天前
|
域名解析 网络协议 Linux
linux网络-- 手动配置ip地址
linux网络-- 手动配置ip地址