阅读本文 📖
1.您将了解到输入URL到浏览器展示内容的网络全貌
2.对计算机网络有个宏观的认识
3.用宏观的角度去了解计算机网络,构建计算机网络知识体系,鱼鱼将会一章章跟新
4.对基础知识充满了兴趣和爱好,培养自己对计算机的兴趣
前言 🌵
学习了很长时间的计算机网络,我发现计算机网络是非常有意思的一个课题,但是它的知识面广而深,通过学习我发现,很多书都是深入某一部分去讲解,未免让人失去兴趣,从URL到浏览器展示画面能够让我们全面的了解到网络的从零到一
知识点 📒
从服务器断开并删除套接字
断开的操作顺序
(1)客户端发送 FIN
(2)服务器返回 ACK 号
(3)服务器发送 FIN
(4)客户端返回 ACK 号
和服务器的通信结束之后,用来通信的套接字也就不会再使用了,这 时我们就可以删除这个套接字了。不过,套接字并不会立即被删除,而是 会等待一段时间之后再被删除。
这个等待时间就是经常面试考察
内容了,为什么要等地一段时间后再被删除呢?
- 如果最后客户端返回的ACK号丢失了,客户端套接字已经删除了,但是服务端没有收到ACK号,于是会重新发送FIN。
- 套接字被删除意味着,内存里面的控制信息也会被删除,正好这个时候有新的应用程序创建了套接字刚好被分配了同一个端口。
- 服务器重发的FIN就正好到达了,那么会导致新套接字就开始执行断开操作了,之所以不马上删 除套接字,就是为了防止这样的误操作。
IP 与以太网的包收发操作
网络包的结构
- 路由器根据目标地址判断下一个路由的位置
- 集线器在子网中将网络包传输到下一个路由
路由器对应IP层,也就是网络层
集线器对应MAC层,也就是物理层
- IP协议根据目标地址判断下一个IP转发设备的位置
- 子网中的以太网协议将包传输到下一个转发设备
先谈谈网络的分层设计:
为什么要分层来设计呢?个人理解就是解耦了,便于扩展。网络层的就不需要关心物理层的实现,这样我们就可以随意的去切换物理层的设备和协议了(物理层可以无线网卡,有线、ADSL、FTTH)
回归正题,IP模块负责添加两个头部到数据包中
- MAC头部:以太网用的头部,包含MAC地址
- IP头部:IP用的头部,包含IP地址
生成包含接收方的IP地址和IP头部
IP地址从哪里来呢,是从TCP模块告知的,因为我们在创建套接字的时候,是使用的IP加端口创建的,套接字中保存了我们的控制信息。
TCP里面的IP地址又是从应用层拿到的
IP头部的格式
这里面的TTL可以重点关注一下,为了避免网络出现回环时,一个包在网络中打转。
IP 头部的“接收方 IP 地址”填写通信对象的 IP 地址。 发送方 IP 地址需要判断发送所使用的网卡,并填写该网卡的 IP 地址。
通过ARP查询目标路由器的MAC地址
ARP
协议就好比一个广播📢,在子网中,呼叫,谁是xxx IP地址,就可以拿到这个IP的mac地址,然后IP协议就可以将这个MAC地址加入到IP头部中
接下来就是将IP包转换成电或者光信号发送出去
网卡的ROM中保存着全世界唯一的MAC地址,这是生产时写入的。
通过网卡驱动 网卡从IP模块获取数据包以后,会将其放在网卡的内的缓冲区中,然后向mac模块发送发送包的指令,然后添加mac头部,并将数字信号通过网卡中的PHY模块转换成可以在网线中传入的通用信号
报头:用来测定时机,就是那个电信号的高低的时机
SFD:起始帧分节符,用来确定帧的起始位置。
这两个的作用,报头相当于把电信号的规律传递出来,SFD用来表示那一截是帧的数据了。
FCS:是帧校验序列(用来检测这个帧是否在传输过程中被噪音等干扰了,导致数据错误)
ICMP: ICMP就好比一个IP层的侦察兵
ICMP消息
UDP 协议的收发操作
不需要重发的数据用 UDP 发送更高效,和TCP都属于传输控制层
和TCP反着来的,很简单,下面介绍一下他的场景
- 控制用的短数据
- 音频和视频数据,实时性的,有实效性
总结 🍁
- IP层数据包的基本知识
- 包的收发操作
- 物理层层相关知识
- ICMP是什么
- UDP简单介绍