如何制作手机网站,嘉兴网站建设维护,品牌推广是什么工作,环球培训机构官网目录 一.同一数据链路发送数据 二.网络协议栈与操作系统的关系 三.封装#xff0c;解包#xff0c;分用 四.IP协议的屏蔽作用 五.IP地址 VS Mac地址 在看完《图解http》和《图解TCP/IP》之后我又把C的网络课进行二刷#xff0c;加深自己的理解。 一.同一数据链路发送数…目录一.同一数据链路发送数据二.网络协议栈与操作系统的关系三.封装解包分用四.IP协议的屏蔽作用五.IP地址 VS Mac地址在看完《图解http》和《图解TCP/IP》之后我又把C的网络课进行二刷加深自己的理解。一.同一数据链路发送数据当我们向同一数据链路中的另一台主机发送数据时我们的数据会广播到这个数据链路中的所有主机中。每个主机的数据链路层检查报文中的目的Mac地址与自己的是不是一样不一样则丢弃一样则向上传递到网络层进而贯穿操作系统到应用层。当同一数据链路中的两台主机同时发送数据时会发送数据碰撞因为在网线中的数据都是电信号或者光信号。为了避免碰撞有碰撞避免算法该算法下同一数据链路中的主机会生成随机数在这个随机数时间后再发送这个数据到网线中由于每个主机生成的随机数极大概率不一样所以碰撞的概率就很小了。令牌环网有令牌环算法它将一个令牌依次分发给该数据链路中的主机持有令牌的主机则可以向数据链路中发送数据这个就如同多线程中的加锁是一个道理。交换机可用于划分碰撞域进一步减小碰撞的可能性。二.网络协议栈与操作系统的关系应用层就是操作系统的上层应用也就是用户态。传输层和网络层则是操作系统内核提供的主流的TCP/IP协议栈几乎在所有的操作系统中都支持。我们在socket编程时调用的接口就是在传输层上的。开发网络工具时还会用到网络层和数据链路层的接口。数据链路层就对应操作系统中的驱动程序。因为硬件的接口是非常张牙舞爪的所以驱动程序对硬件接口进行封装和对操作系统提供服务。网络中的数据链路层同样是网卡驱动在管理网卡。物理层就对应操作系统管理的硬件了在网络中是网卡设备。网络通信的本质就是在贯穿协议栈同时也在贯穿操作系统。对于一台主机它的操作系统内核实现了从传输层到物理层的内容对于一台路由器它实现了从网络层到物理层对于一台交换机它实现了从数据链路层到物理层对于集线器它只实现了物理层。可以说一台主机可以有路由器交换机集线器的功能一个路由器可以有交换机和集线器的功能。但是并不绝对.很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发)。三.封装解包分用网络通信的过程本质就是发送端逐层封装、接收端逐层解包的过程。几乎任何层的协议都要提供一种能力将报头和有效载荷分离的能力。几乎任何层的协议都要在报头中提供决定将自己的有效载荷交付给上层的哪一个协议的能力。四.IP协议的屏蔽作用在跨子网传输时我们要通过路由器进行路由选择此时用到的是ip协议。在路由器中的ip协议这一层会将接收到的Mac帧报头被解包的数据路由选择之后会再将数据链路的报头加上如果以太网协议就加上以太网报头如果是令牌环网就加上令牌环网协议报头。也就是IP协议屏蔽了底层网络的差异化靠的就是工作在IP层的路由器。IP实现了全球主机的软件虚拟层一切皆是IP报文五.IP地址 VS Mac地址ip地址尤其是目的IP一般都是不会改变的协助我们进行路径选择。Mac地址出局域网之后原地址和目的地址都要重写 / 替换让路由器重新封装数据链路报头。ipv4的IP地址4字节ipv6的IP地址16字节。Mac地址6字节。