网络复习篇——网络基础(一)

目录

一.同一数据链路发送数据

二.网络协议栈与操作系统的关系

三.封装,解包,分用

四.IP协议的屏蔽作用

[五.IP地址 VS Mac地址](#五.IP地址 VS Mac地址)


在看完《图解http》和《图解TCP/IP》之后我又把C++的网络课进行二刷,加深自己的理解。

一.同一数据链路发送数据

当我们向同一数据链路中的另一台主机发送数据时,我们的数据会广播到这个数据链路中的所有主机中。每个主机的数据链路层检查报文中的目的Mac地址与自己的是不是一样,不一样则丢弃,一样则向上传递到网络层,进而贯穿操作系统到应用层。

当同一数据链路中的两台主机同时发送数据时会发送数据碰撞,因为在网线中的数据都是电信号或者光信号。为了避免碰撞,有碰撞避免算法,该算法下,同一数据链路中的主机会生成随机数,在这个随机数时间后再发送这个数据到网线中,由于每个主机生成的随机数极大概率不一样,所以碰撞的概率就很小了。

令牌环网有令牌环算法,它将一个令牌依次分发给该数据链路中的主机,持有令牌的主机则可以向数据链路中发送数据,这个就如同多线程中的加锁,是一个道理。

交换机可用于划分碰撞域,进一步减小碰撞的可能性。

二.网络协议栈与操作系统的关系

应用层就是操作系统的上层应用,也就是用户态。

传输层和网络层则是操作系统内核提供的,主流的TCP/IP协议栈几乎在所有的操作系统中都支持。我们在socket编程时调用的接口就是在传输层上的。开发网络工具时还会用到网络层和数据链路层的接口。

数据链路层就对应操作系统中的驱动程序。因为硬件的接口是非常张牙舞爪的,所以驱动程序对硬件接口进行封装和对操作系统提供服务。网络中的数据链路层同样是网卡驱动在管理网卡。

物理层就对应操作系统管理的硬件了,在网络中是网卡设备。

网络通信的本质就是在贯穿协议栈,同时也在贯穿操作系统。

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器,它实现了从网络层到物理层;
  • 对于一台交换机,它实现了从数据链路层到物理层;
  • 对于集线器,它只实现了物理层。

可以说,一台主机可以有路由器,交换机,集线器的功能;一个路由器可以有交换机和集线器的功能。

但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发)。

三.封装,解包,分用

网络通信的过程,本质就是发送端逐层封装 、接收端逐层解包的过程。

  1. 几乎任何层的协议,都要提供一种能力,将报头和有效载荷分离的能力。
  2. 几乎任何层的协议,都要在报头中提供,决定将自己的有效载荷交付给上层的哪一个协议的能力。

四.IP协议的屏蔽作用

在跨子网传输时,我们要通过路由器进行路由选择,此时用到的是ip协议。在路由器中的ip协议这一层会将接收到的Mac帧报头被解包的数据,路由选择之后会再将数据链路的报头加上,如果以太网协议就加上以太网报头,如果是令牌环网就加上令牌环网协议报头。也就是IP协议屏蔽了底层网络的差异化,靠的就是工作在IP层的路由器。IP实现了全球主机的软件虚拟层,一切皆是IP报文!

五.IP地址 VS Mac地址

ip地址,尤其是目的IP,一般都是不会改变的,协助我们进行路径选择。

Mac地址,出局域网之后,原地址和目的地址都要重写 / 替换 ,让路由器重新封装数据链路报头。

ipv4的IP地址4字节,ipv6的IP地址16字节。Mac地址6字节。

相关推荐
程序猿编码1 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
西飘客2 小时前
vs 怎么根据dll 生成lib文件
c++·qt
不像程序员的程序媛2 小时前
检测网络的命令mtr详解
网络
天启HTTP3 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
程序员老陆3 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
运维行者_3 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
qq_284274054 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
hz567895 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
优橙教育5 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
qq_284274055 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造