网络架构实战课
谢友鹏
某大厂技术专家
71 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 3 讲/共 24 讲
网络架构实战课
15
15
1.0x
00:00/00:00
登录|注册

01|一个数据包的网络之旅:网络是如何工作的?

你好,我是谢友鹏。
你是否曾好奇,互联网究竟是如何运作的?我们都知道“客户端 - 服务端”网络模型,但实际上,客户端和服务端之间可能相隔万里。
数据包是如何在这个庞大的网络中传输的呢?今天,我们将通过一个数据包的“网络之旅”来揭示这一过程。

旅行前的准备工作

开始之前先提醒一下,这门课里设计的实验环节比较多,如果你是网络新手,请在开始旅程之前先阅读一下导读里关于课程实验环境、问题定位思路和网络问题排查工具的相关章节。

旅程开始

首先,让我们通过一个 HTTP 请求来观察数据包的旅程。
#发起一个http请求。
$ curl -o /dev/null -v http://example.com
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Host example.com:80 was resolved.
* IPv6: 2606:2800:21f:cb07:6820:80da:af6b:8b2c
* IPv4: 93.184.215.14
* Trying 93.184.215.14:80...
* Trying [2606:2800:21f:cb07:6820:80da:af6b:8b2c]:80...
* Immediate connect fail for 2606:2800:21f:cb07:6820:80da:af6b:8b2c: Network is unreachable
* Connected to example.com (93.184.215.14) port 80
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/8.5.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Age: 422312
< Cache-Control: max-age=604800
< Content-Type: text/html; charset=UTF-8
< Date: Tue, 19 Nov 2024 16:01:26 GMT
< Etag: "3147526947"
< Expires: Tue, 26 Nov 2024 16:01:26 GMT
< Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
< Server: ECAcc (sed/58C9)
< Vary: Accept-Encoding
< X-Cache: HIT
< Content-Length: 1256
<
{ [1256 bytes data]
100 1256 100 1256 0 0 2600 0 --:--:-- --:--:-- --:--:-- 2600
* Connection #0 to host example.com left intact
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. HTTP请求的数据包在发送方经过逐层封装,包括应用层的HTTP Header、传输层的TCP Header、网络层的IP Header,以太网帧的帧头和帧尾等。 2. 数据包会按相反的顺序逐层解封装,依次解读网络层、传输层和应用层的信息,最后将数据传递给接收方的应用程序。 3. 了解网络分层模型的介绍,包括OSI模型和TCP/IP模型的对应关系,以及各层的封装关系。 4. 通过抓包和使用curl发起HTTP请求,可以观察ARP广播查询的过程,以及数据包从设备发出后经过的各个IP地址。 5. 了解ARP表中的IP和MAC地址的对应关系,以及如何通过ARP表查看目的MAC地址。 6. 数据包在公网中的传输过程类似于快递的配送过程,需要经过多次中转,每个路由器根据自己的路由表决定数据包的下一跳转发路径。 7. 互联网采用了自治系统(AS)来管理网络范围,并对外发布路由信息,以减少路由表的复杂性。 8. 在每个AS内部,路由器会通过内部网关协议(IGP)互相传递路由信息,而AS之间则使用边界网关协议(BGP)进行路由信息的交换与发布。 9. 数据包在局域网中需要通过企业内部的网络设备,包括路由器、防火墙和负载均衡器(LB)等,最终被送达目标服务器。 10. 网络数据包的旅程告一段落,理解了数据包从客户端发出到服务器响应的每一个环节,以及网络分层的概念和数据在不同层级的处理方式。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《网络架构实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)