《网络是怎样连接的》读书笔记
2022-05-18 10:02:24 0 举报
AI智能生成
图解 户根勤的《网络是怎样连接的》第二版
作者其他创作
大纲/内容
总览图
网络包流程
待补充
各层专业术语
https://blog.csdn.net/weixin_46733442/article/details/106269376
探索浏览器内部
(第一章)
(第一章)
生成HTTP请求信息
URL组成
HTTP协议组成
URI(统一资源标识符)
存放资源的文件或者程序
存放资源的文件或者程序
请求方法
GET、POST等
GET、POST等
消息头字段
通用头
请求头
响应头
实体头
描述实体内容的属性,包括实体信息类型,长度,压缩方法,最后一次修改时间,数据有效性等
状态码
HTTP消息格式
向DNS服务器查询Web服务器IP地址
IP地址结构
子网掩码是一个32位的2进制数, 其对应网络地址的所有位都置为1,对应于主机地址的所有位置都为0。
子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,
使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。
如:192.168.10.11 AND 255.255.255.0,结果为192.168.10.0,其表达的含义为:该IP地址属于 192.168.10.0这个网络,其主机号为11,即这个网络中编号为11的主机。
子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,
使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。
如:192.168.10.11 AND 255.255.255.0,结果为192.168.10.0,其表达的含义为:该IP地址属于 192.168.10.0这个网络,其主机号为11,即这个网络中编号为11的主机。
全世界DNS接力
域名分类
一级域名:.com、.cn、.gov、.us
二级域名:baidu.com、jd.com、taobao.com
三级域名:baike.baidu.com
二级域名:baidu.com、jd.com、taobao.com
三级域名:baike.baidu.com
DNS解析器工作原理
使用的是UDP协议
委托协议栈发送消息
用电信号传输TCP/IP数据
(第二章)
(第二章)
总览
ICMP:用于告知网络包传送过程中产生的错误以及各种控制消息
ARP:根据 IP 地址查询相应的以太网 MAC 地址
ARP:根据 IP 地址查询相应的以太网 MAC 地址
TCP
头部信息
套接字
netstat显示套接字信息
在协议栈内部有一块用于存放控制信息的内存空间,这里记录了用于控制通信操作的控制信息,例如通信对象的 IP 地址、端口号、通信操作的进行状态等。
本来套接字就只是一个概念而已,并不存在实体,如果一定要赋予它一个实体,我们可以说这些控制信息就是套接字的实体,或者说存放控制信息的内存空间就是套接字的实体。
在协议栈内部有一块用于存放控制信息的内存空间,这里记录了用于控制通信操作的控制信息,例如通信对象的 IP 地址、端口号、通信操作的进行状态等。
本来套接字就只是一个概念而已,并不存在实体,如果一定要赋予它一个实体,我们可以说这些控制信息就是套接字的实体,或者说存放控制信息的内存空间就是套接字的实体。
消息收发操作
控制信息
头部控制信息
(客户端和服务器相互联络时交换的控制信息)
(客户端和服务器相互联络时交换的控制信息)
套接字控制信息
(协议栈会根据这些来执行每一步的操作)
(协议栈会根据这些来执行每一步的操作)
整体流程
连接阶段:ACK号=序号初始值+1
收发操作:ACK号=序号+数据长度(不包括:以太网协议头=14字节,IP头=20字节,TCP头=20字节)
断开操作(可由任意一方发起):ACK号=序号+1
收发操作:ACK号=序号+数据长度(不包括:以太网协议头=14字节,IP头=20字节,TCP头=20字节)
断开操作(可由任意一方发起):ACK号=序号+1
- 步骤9和步骤10之间会有多次数据发送,ACK号不变
- 步骤11结束后会有2MSL的等待时间,一是保证TCP的全双工连接能够可靠关闭,二保证这次连接的重复数据段从网络中消失
滑动窗口与数据缓冲区
IP和以太网
IP
头部信息
模块作用
IP模块是整个包传输过程的入口,会封装IP头部和MAC头部信息
传输方式
MAC地址查询方式
通过广播的方式,把包发给连接在同一以太网中的所有设备,ARP带
有缓存可以减少ARP包的数量一般几分钟后缓存会被删除
有缓存可以减少ARP包的数量一般几分钟后缓存会被删除
以太网
组成
- 本地MAC地址
- 目标MAC地址
- 协议类型
网卡
硬件组成
MAC模块:从报头开始将数字信息按每个比特转换成电信号
PHY(MAU)模块:会将信号转换为可在网线上传输的格式,并通过网线发送出去。
PHY(MAU)模块:会将信号转换为可在网线上传输的格式,并通过网线发送出去。
数据包组成
UDP
头部信息
适用场景
- 不需要消息已送达
- 信息很少,重发代价小,比如DNS解析
集线器、交换机和路由器
(第三章)
(第三章)
总览
信号在网线和集线器中传输
网线
使用双绞线传输信号
集线器
信号发送给所有连接在它上面的线路
交换机的包转发操作
内部构造
- 交换机端口的 MAC 模块不具有 MAC 地址
- 当交换机发现一个包要发回到原端口时,就会直接丢弃这个包。
MAC地址表维护
- 收到包时,将发送方 MAC 地址以及其输入端口的号码写入MAC 地址表中
- 删除时,过一段时间自动删除
路由器的包转发操作
内部构造
- 转发模块负责判断包的转发目的地
- 端口模块负责包的收发操作
- 路由器的各个端口都具有 MAC 地址和 IP 地址
路由表
路由器会忽略主机号,只匹配网络号
目的网络地址(Destination) + 子网掩码(Netmask):确定本机可以达到的目的网络范围
网关(Gateway):下一跳地址
跃点数(Metric):到达目标地址所需要的总路由器个数
目的网络地址(Destination) + 子网掩码(Netmask):确定本机可以达到的目的网络范围
网关(Gateway):下一跳地址
跃点数(Metric):到达目标地址所需要的总路由器个数
地址转换
探索接入网和网络运营商
(第四章)
(第四章)
ADSL 接入网的结构和工作方式
ADSL Modem 将包拆分成信元,并转换成电信号发送给分离器
分离器需要负责将电话和 ADSL 的信号进行分离
光纤接入网(FTTH)
光通信原理
接入网中使用的 PPP 和隧道
(PPPoE 是将 PPP 消息装入以太网包进行传输的方式。)
(PPPoE 是将 PPP 消息装入以太网包进行传输的方式。)
拨号上网中的PPP
ADSL中的PPP
FTTH中的PPP
DHCP
将以太网包直接转换成 ADSL 信号发送给 DSLAM,
不需要像 PPP那样需要多个步骤,也不需要验证用户名和密码。
没有用户名和密码,就意味着无法通过用户名来切换运营商网络,
但这种方式也有优势,它可以单纯地直接传输以太网包,
不需要添加额外的 PPP 头部,因此不会占用 MTU。
不需要像 PPP那样需要多个步骤,也不需要验证用户名和密码。
没有用户名和密码,就意味着无法通过用户名来切换运营商网络,
但这种方式也有优势,它可以单纯地直接传输以太网包,
不需要添加额外的 PPP 头部,因此不会占用 MTU。
网络运营商的内部
概览
网络包通过接入网之后,到达运营商 POP 的路由器
POP概览
POP 的结构根据接入网类型以及运营商的业务类型不同而不同。
POP 中包括各种类型的路由器,路由器的基本工作方式是相同的,
但根据其角色分成了不同的类型。
POP 中包括各种类型的路由器,路由器的基本工作方式是相同的,
但根据其角色分成了不同的类型。
跨越运营商的网络包
不同运营商之间的路由信息交换
不同运营商之间的物理连接
IX可以理解为一个中心设备,不同运营商之间通过连接到中心
设备的方式来减少线路数量,其实体为高性能交换机
设备的方式来减少线路数量,其实体为高性能交换机
服务端的局域网
(第五章)
(第五章)
Web 服务器的部署地点
部署在公司(无防火墙):安全性差,大流量会导致服务器压力大
部署在公司(有防火墙):安全性较高,会过滤流量
部署在服务中心:有防火墙,数据传输效率高
部署在公司(有防火墙):安全性较高,会过滤流量
部署在服务中心:有防火墙,数据传输效率高
防火墙的结构和原理
原理
包过滤方式的防火墙可根据接收方 IP 地址、发送方 IP 地址、接
收方端口号、发送方端口号、控制位等信息来判断是否允许某个
包通过
收方端口号、发送方端口号、控制位等信息来判断是否允许某个
包通过
结构
主要是规则表
通过将请求平均分配给多台服务器来平衡负载
原理
是采用多台 Web 服务器,减少每台服务器的访问量
方法
轮询切换DNS服务IP
使用负载均衡器
利用缓存服务器分担负载
原理
有缓存的情况
URI部分为路径,所以只能转发给指定Web服务器
其他用途
正向代理
(能拿到数据包内容,所以可以根据数据内容进行权限控制)
(能拿到数据包内容,所以可以根据数据内容进行权限控制)
使用正向代理时,URI 部分为http://... 这样的完整网址,
因此可以根据这个网址转发给任意Web 服务器
因此可以根据这个网址转发给任意Web 服务器
反向代理
通过将请求消息中的 URI 中的目录名与 Web 服务器进行关联
内容分发服务
(CDN)
(CDN)
缓存服务部署的地点
第三种的部署方式最优,但是如果让Web服务提供者直接在运营商部署,
对于精力、费用来说,都是吃不消的,由此有了专门负责在各大运营商
部署缓存服务的运营商,简称CDSP:
对于精力、费用来说,都是吃不消的,由此有了专门负责在各大运营商
部署缓存服务的运营商,简称CDSP:
- 一方面,他们会与主要的供应商签约,并部署很多台缓存服务器 C
- 另一方面,CDSP 会与 Web 服务器运营者签约,使得 CDSP 的缓存服务器配合 Web 服务器工作。
如何找到最近的缓存服务器
通过路由表分配目标
通过重定向服务器分配目标
(请求头中的Location)
(请求头中的Location)
服务端响应Web请求
(第六章)
(第六章)
服务器概览
通信过程
在执行accept 的时候,一般来说服务器端都是处于等待包到达的状态,
这时应用程序会暂停运行。在这个状态下,一旦客户端的包到达,
就会返回响应包并开始接受连接操作。
描述符1会一直存在,作为等待连接的描述符
这时应用程序会暂停运行。在这个状态下,一旦客户端的包到达,
就会返回响应包并开始接受连接操作。
描述符1会一直存在,作为等待连接的描述符
服务器的接收操作
网卡接收到包后通过中断的方式通知CPU执行操作
Web 服务器程序解释请求消息并作出响应
将请求的 URI 转换为实际的文件名
文件目录与实际目录不同,需要转换
访问权限控制
IP控制
域名控制
用户名、密码控制
返回消息
浏览器接收响应消息并显示内容
根据头部数据类型Content-Type判断内容
渲染界面

收藏
0 条评论
下一页