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