协议那些事(二)

网络分层的原因

程序执行是复杂的 为使程序执行简单化 设计时会将程序分层处理 使其每一层界限清晰 专注与处理某一类的事情 明确每一层的职责 也就帮我们将一个庞大复杂的问题分成了许多小问题 实现复杂问题简单化

程序是如何工作的

我们知道 程序是可以跑在电脑上、服务器上、交换机上、路由器上的 通常程序的处理 就是从某个网络端口获取一个网络包 经过程序处理一下 再从另一个网口发出 具体流程参照下图

图中函数名只是假设
图中四层设备的TCP头 可以确认这个包是一个请求 还是应答 还是仅仅是个数据包
如果是发起或应答 则一般需要发送一个回复包
如果是数据包 则需要交由上层--应用去处理 交给哪个应用呢? TCP头里包含端口 监听这个端口的应用 就是我们数据包需要交付的应用 假设浏览器监听 则将包发给浏览器处理 后续浏览器怎么处理 第一个包的处理已不再关注这些

总结: 网络上的包都是完整的 可以有下层没上层 但不能有上层没下层--对于TCP协议来说 无论是三次握手 还是重试 发出的包都包含IP和MAC层 不然发不出去

包有IP【外网IP】为什么还一定要有MAC地址呢?

  • 因为局域网内IP是随机分配的 不唯一 但是MAC地址对于每台主机是唯一的
posted @   C余L小R鱼  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示