ToB企服应用市场:ToB评测及商务社交产业平台

标题: 浅谈网络 | 通信协议 [打印本页]

作者: 怀念夏天    时间: 2024-10-27 20:21
标题: 浅谈网络 | 通信协议
协议三要素
语法,就是这一段内容要符合肯定的规则和格式。例如,括号要成对,竣事要利用分号等。
语义,就是这一段内容要代表某种意义。例如数字减去数字是故意义的,数字减去文本一般来说就没故意义。
顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。
用一个下单的过程,看看互联网世界的运行过程中,都利用了哪些网络协议:
一、一些问题

1、TCP 在举行三次握手的时候,IP 层和 MAC 层对应都有什么操作呢?

     在三次握手中,IP 层负责路由和 IP 地址管理,确保数据包从源 IP 发送到目的 IP。而MAC 层负责局域网内的传输,通过 ARP 获取 MAC 地址并举行帧封装,使数据帧能在局域网内正确路由。
2、 二层设备处置惩罚的包里,有没有 HTTP 层的内容呢?

当我们发送一个 HTTP 包时,它确实包含了七层的内容,但在网络传输过程中,它仍然会经过二层设备。实际上,网络通信过程会经过多个条理,每一层都会在本身的条理上处置惩罚部分信息。
     即使是七层的 HTTP 数据包,它也必须经过二层设备,但二层设备不会解析或处置惩罚此中的 HTTP 内容。
3、通过 SSH 登录到公有云主机里面,都需要经历哪些过程?

     本地电脑通过 SSH 连接公有云主机的过程主要涉及以下步调:
DNS 解析:将公有云主机域名解析为 IP 地址。
TCP 三次握手:创建可靠的 TCP 连接。
SSH 握手与加密会话创建:通过密钥互换和算法协商生成加密信道。
身份验证:客户端验证身份,服务器确认合法用户。
加密会话与数据传输:在加密信道中举行命令操作和数据传输。
连接关闭与资源释放:执行四次挥手,安全断开连接,释放资源。
4、打开一个电商网站,都需要经历哪些过程?

     打开一个电商网站时的完整过程包罗以下步调:
DNS 解析:将域名转换为 IP 地址。
TCP 三次握手:创建 TCP 连接。
SSL/TLS 握手:创建加密通道。
发送 HTTP 请求:请求页面内容。
服务器处置惩罚请求:生成 HTML 和数据内容。
返回 HTTP 响应:数据包通过 TCP 加密传输。
浏览器渲染页面:解析 HTML、CSS、执行 JavaScript。
异步加载资源:加载图片、视频等外部资源。
用户交互和响应:支持购物车、导航等交互功能。
缓存和优化:浏览器缓存资源,加快后续访问。
二、为什么要网络分层?

计算机网络分层是为了实现各层独立、提高机动性、将复杂问题分解成小问题,从而使筹划、实现和维护更加高效。
网络数据包在经过不同网络层时的处置惩罚流程


     OSI 七层模子架构图:

三、 Ifconfig&ip addr

如果在非常小的 Linux 系统中,发现既没有 ifconfig 命令,也没有 ip addr 命令。这个时候,可以自行安装 net-tools 和 iproute2 这两个工具。固然,大多数时候这两个命令是系统自带的。
  1. root@test:~# ip addr
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4.     inet 127.0.0.1/8 scope host lo
  5.        valid_lft forever preferred_lft forever
  6.     inet6 ::1/128 scope host
  7.        valid_lft forever preferred_lft forever
  8. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  9.     link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff
  10.     inet 10.100.122.2/24 brd 10.100.122.255 scope global eth0
  11.        valid_lft forever preferred_lft forever
  12.     inet6 fe80::f816:3eff:fec7:7975/64 scope link
  13.        valid_lft forever preferred_lft forever
复制代码
这个命令显示了这台机器上全部的网卡;
  1. 1: lo::表示接口编号(1)和接口名称(lo),lo 是 Linux 系统中默认的回环接口(loopback interface),用于本地通信测试。
  2. <LOOPBACK,UP,LOWER_UP>:接口状态标志。
  3. LOOPBACK:表示这是一个回环接口。
  4. UP:接口已经启用。
  5. LOWER_UP:物理链路已经连接。
  6. mtu 65536:最大传输单元(MTU),表示接口可以传输的最大数据包大小。回环接口的 MTU 设置较大,因为它不经过物理网络。
  7. qdisc noqueue:队列调度器(queueing discipline)类型。noqueue 表示这个接口不需要排队(因为它只用于本地传输)。
  8. state UNKNOWN:接口状态,由于回环接口不需要实际的物理连接,所以显示为 UNKNOWN。
  9. group default:接口所属的组(默认组)。
  10. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:表示链路层(数据链路层)的 MAC 地址。回环接口没有实际的 MAC 地址,所以显示为 00:00:00:00:00:00。
  11. inet 127.0.0.1/8 scope host lo:IPv4 地址。
  12. 127.0.0.1/8:这是本地回环地址,子网掩码为 /8(255.0.0.0),即 127.0.0.1-127.255.255.255 范围内的 IP 地址都属于回环地址。
  13. scope host:作用域是 host,仅在本机使用。
  14. valid_lft forever preferred_lft forever:该地址的有效期(valid lifetime)和优先有效期(preferred lifetime)是永久的,即不会失效。
  15. inet6 ::1/128 scope host:IPv6 地址。
  16. ::1/128:IPv6 回环地址,::1 是 IPv6 的本地回环地址,等价于 IPv4 的 127.0.0.1。
  17. scope host:表示该地址的作用域是本地(host)。
  18. valid_lft forever preferred_lft forever:地址的有效期和优先有效期是永久的。
复制代码
  1. 2: eth0::接口编号(2)和接口名称(eth0),eth0 是默认的第一个有线以太网接口。
  2. <BROADCAST,MULTICAST,UP,LOWER_UP>:接口状态标志。
  3. BROADCAST:接口支持广播。
  4. MULTICAST:接口支持多播。
  5. UP:接口已经启用。
  6. LOWER_UP:物理链路已经连接。
  7. mtu 1500:最大传输单元为 1500 字节,这是以太网接口的默认值。
  8. qdisc pfifo_fast:队列调度器类型,pfifo_fast 表示默认的先进先出(FIFO)队列。
  9. state UP:接口处于启用状态。
  10. group default:接口所属的组。
  11. qlen 1000:队列长度,表示接口可以处理的最大数据包数量为 1000 个。
  12. link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff:链路层(数据链路层)信息。
  13. fa:16:3e:c7:79:75:接口的 MAC 地址。
  14. brd ff:ff:ff:ff:ff:ff:广播地址,用于在网络上发送广播消息。
  15. inet 10.100.122.2/24 brd 10.100.122.255 scope global eth0:IPv4 地址信息。
  16. 10.100.122.2/24:接口的 IPv4 地址,子网掩码为 /24(255.255.255.0),即该地址属于 10.100.122.0 到 10.100.122.255 的子网。
  17. brd 10.100.122.255:广播地址,用于向同一子网的所有设备发送数据。
  18. scope global:作用域为 global,表示该地址可用于公网通信。
  19. valid_lft forever preferred_lft forever:地址的有效期和优先有效期是永久的。
  20. inet6 fe80::f816:3eff:fec7:7975/64 scope link:IPv6 地址信息。
  21. fe80::f816:3eff:fec7:7975/64:接口的链路本地 IPv6 地址,fe80:: 是链路本地地址前缀。
  22. scope link:作用域为 link,表示该地址仅在本地网络中有效。
  23. valid_lft forever preferred_lft forever:地址的有效期和优先有效期是永久的。
复制代码
在 IP 地址的背面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以吸收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。
lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处置惩罚后直接返回,不会在任何网络中出现。
MAC 地址
在 IP 地址的上一行是 link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff,这个被称为MAC 地址,是一个网卡的物理地址,用十六进制,6 个 byte 表现。
MAC 地址更像是身份证,是一个唯一的标识。它的唯一性筹划是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不消担心辩论。从硬件角度,保证不同的网卡有不同的标识。
MAC 地址是有肯定定位功能的,只不过范围非常有限。MAC 地址的通信范围比力小,范围在一个子网里面。例如,从 192.168.0.2/24 访问 192.168.0.3/24 是可以用 MAC 地址的。一旦跨子网,即从 192.168.0.2/24 到 192.168.1.2/24,MAC 地址就不行了,需要 IP 地址起作用了。
网络设备的状态标识
<BROADCAST,MULTICAST,UP,LOWER_UP> 是干什么的?这个叫作net_device flags,网络设备的状态标识。
UP 表现网卡处于启动的状态;BROADCAST 表现这个网卡有广播地址,可以发送广播包;MULTICAST 表现网卡可以发送多播包;LOWER_UP 表现 L1 是启动的,也即网线插着呢。MTU1500 是指什么意思呢?是哪一层的概念呢?最大传输单位 MTU 为 1500,这是以太网的默认值。
网络包是层层封装的。MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。正文里面有 IP 的头、TCP 的头、HTTP 的头。如果放不下,就需要分片来传输。
qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口设置的 qdisc(排队规则)把数据包加入队列。
最简单的 qdisc 是 pfifo,它不对进入的数据包做任何的处置惩罚,数据包采用先入先出的方式通过队列。pfifo_fast 轻微复杂一些,它的队列包罗三个波段(band)。在每个波段里面,利用先进先出规则。
三个波段(band)的优先级也不雷同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面有数据包,系统就不会处置惩罚 band 1 里面的数据包,band 1 和 band 2 之间也是一样。
数据包是按照服务范例(Type of Service,TOS)被分配到三个波段(band)里面的。TOS 是 IP 头里面的一个字段,代表了当前的包是高优先级的,照旧低优先级的。
   pfifo和pfifo_fast都是Linux内核中用于网络流量控制的排队规则。
pfifo采用先入先出的方式处置惩罚数据包,简单且高效,但缺乏流量控制和优先级管理的能力。
pfifo_fast在pfifo的底子上引入了优先级调治的概念,通过三个不同优先级的波段来管理数据包,提高了网络流量的管理效率。
在选择利用哪种排队规则时,需要根据详细的网络环境和需求举行权衡和选择。对于需要简单且高效处置惩罚大量数据包的环境,pfifo大概是一个不错的选择;而对于需要处置惩罚具有不同优先级的数据包的环境,pfifo_fast大概更符合。
IP是怎么来的,又是怎么没的?
  四、DHCP与PXE

动态主机设置协议(Dynamic Host Configuration Protocol),简称DHCP。
DHCP 的根本工作方式:
Discover 包的内容很简单:设备带着本身的 MAC 地址,告诉网络管理员(DHCP Server)本身还没有 IP,问谁能租个 IP 地址给它。
在这个 Offer 包里,DHCP Server 提供了一个 IP 地址,同时也包含了子网掩码、网关和租约时间等设置信息。由于新设备还没有 IP 地址,DHCP Server 也需要通过广播方式发送 Offer 数据包,让它能吸收到。

续约与释放
续约:IP 地址的租赁期到达一半时,设备会发送一个 DHCP Request 数据包请求续租,服务器会通过 ACK 数据包延长租赁限期。
释放:当设备离开网络时,会发送 DHCP Release 数据包,将 IP 地址归还 DHCP 服务器以供其他设备利用。
预启动执行环境(Pre-boot Execution Environment),简称PXE。
PXE 的背景

PXE 工作流程分解
1、启动 PXE 客户端
由于还没有操作系统,PXE 客户端被写入 BIOS 中。开机时 BIOS 加载 PXE 客户端进入内存。
PXE 客户端在启动时通过 DHCP 获取 IP 地址,而且请求其他设置信息。
2、通过 DHCP 获取 PXE 服务器信息
PXE 客户端发送 DHCP Discover 广播包,告诉 DHCP Server 设备“初来乍到”,没有 IP 地址。DHCP Server 会分配一个 IP 地址,并在回应的 DHCP Offer 中包含 PXE 服务器的地址(next-server)和启动文件(filename,例如 pxelinux.0)。
为了支持 PXE,DHCP 服务器设置中增长了 next-server 和 filename 参数,这样 PXE 客户端除了得到 IP,还能知道去哪里找 PXE 服务器和下载哪个启动文件。
3、从 PXE 服务器下载启动文件
获取到 PXE 服务器地址和启动文件名后,PXE 客户端会尝试从该服务器下载启动文件。这个下载过程利用 TFTP(Trivial File Transfer Protocol),一种简化的文件传输协议。
PXE 服务器(通常有一个 TFTP 服务器)吸收到请求后,将 pxelinux.0 文件传给客户端。
4、执行启动文件,获取设置信息
PXE 客户端执行下载到的启动文件 pxelinux.0。启动文件指示客户端继承向 TFTP 服务器请求更多的设置信息(例如 pxelinux.cfg 设置文件)。
设置文件中定义了进一步的系统加载信息,包罗内核位置和 initramfs 文件。这些信息指引 PXE 客户端完成操作系统的启动准备。
5、启动操作系统
PXE 客户端下载并加载 Linux 内核与 initramfs 文件,系统成功启动。
一旦内核启动,机器便有了根本操作系统的功能,可以通过网络进一步安装完整的操作系统。
关键点
PXE 的 DHCP 设置:为支持 PXE,需要在 DHCP 服务器中设置 next-server(PXE 服务器的 IP)和 filename(启动文件)。
TFTP 协议:PXE 利用 TFTP 举行文件传输,适合在无操作系统的环境中传输启动文件。
自动化安装流程:PXE 实现了操作系统的自动化摆设,大大简化了数据中央中大批量服务器的初始化和安装流程。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4