网络通讯基石:TCP/IP和OSI网络模型

为什么会有网络模型

因为**标准化**。
车同轨 书同文 行同伦就是秦始皇的最大贡献,有标准才能统一化。如果每个厂商都定义自己的网络模型,对于信息的流转将是巨大灾难。

对应关系

在这里插入图片描述
由国际化标准组织制定的 OSI 模型,本来是最应该在全球范围内推广的网络模型,不过因为 OSI 的设计过于理想不合实际,再加上当时应用 TCP/IP 模型的因特网(Internet)已经覆盖了全球大部分地区。种种原因,导致 OSI 并没有取得市场化的成功,仅仅是获得了理论上的研究成果。而 TCP/IP 模型则被作为了事实上的国际标准

数据封装

既然是标准化,那么对于每一层要对数据做怎么样的处理就应该是协商一致的。
tcp/ip是如何封装数据的,如下图:
在这里插入图片描述

我们通过wareshark抓取一个TCP数据包看看是否和上图中的流程一致:
在这里插入图片描述
对比前图,我们的wareshark在网络层少了FCS。原因如下:
网卡在工作时要先去掉前导同步码和帧开始定界符,然后对帧进行差错检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据。
因此,wireshark 抓到的是去掉前导同步码、帧开始分界符、FCS校验之外的数据

数据传输流

知道数据如何封装,那么整个数据在网络流转就会很清晰了。
在这里插入图片描述

协议包头

MAC头

MAC 帧中非数据部分的长度一共是 18(6+6+2+4)个字节,而总长度限制范围是 64 ~ 1518,那么 MTU 数据部分的长度就为 46 – 1500字节
在这里插入图片描述

IP 头

在这里插入图片描述
IP 数据报中首部长度(Header Length)字段占用了 4 位,能表示的最大值的 15。但是这个字段的单位 32位长( 4个字节),所以首部最大长度为 15*4=60 字节。其最小值为5,因为首部固定部分 20 字节。

由于 IP 数据报首部格式固定部分长度为 20字节,那么 可选项部分(Option)最大长度为 40个字节。

IP 数据报中总长度(Total Length)占了 16 位,最大值是 2^16 -1 = 65535 字节,但是实际中这么大的数据报是极少见的。注意这里的总长度包括了当前报文段的首部和数据部分。

另外,总长度 – 首部长度 = 数据部分长度,也就是传输层 TCP 或 UDP 报文分组的长度。

  1. IP数据报分片

    所发送的 IP 数据报如果超过的链路层的 MTU值,就必须进行分片传输。IP 数据报支持分片传输,但是在实际使用中我们要避免分片。为什么要避免分片?

    IP层没有重传机制,如果某个分片丢失,传输层需要将所有分片进行重传。
    多个分片都会有自己的 IP 首部,实际数据部分比例下降,数据传输效率会降低。
    一般 TCP 建立连接时会相互通知 MSS 值(TCP报文的 Option 中),从而避免分片。

    UDP需要应用层去现在包大小,MTU最大 1500,需要限制 UDP包不超过 1472 (1500 – IP包头20 – UDP包头8)

  2. MSS 值是多少?
    一般来说,只要避免 IP 分片,TCP 的 MSS 值可以尽量大一些。但是网络情况是复杂的,IP数据报经历的路劲是会动态变化的,最佳的 MSS 确认是不太容易的。如果双方没有相互通知 MSS ,那个需要一个保守的值,再加上一些历史原因,于是默认的 MSS 定为 576。

    如果使用TCP协议,实际中在连接阶段很多相互通知 MSS 的值为 1460(MTU 1500 – IP header 20 – TCP header20)

TCP 头

在这里插入图片描述
TCP 报文段格式内是没有长度的,其长度可以通过 IP 首部中长度推算出来。

实际中,在连接阶段很多相互通知 MSS 的值为 1460(MTU 1500 – IP header 20 – TCP header20)。如果没有通知 MSS,则默认的 MSS 为 576,一个很保守的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kingforyang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值