Linux——ip协议

ip协议也属于tcp/ip协议栈

ip协议报头格式

在这里插入图片描述

ip协议如何将自己的报头和有效载荷分离?

报头可以做到定长加自描述字段将报头和有效载荷分离出来

ip协议如何将自己的有效载荷交付给上层协议?

依靠报头中8位协议决定将自己交付给上层的那个协议

IP实现跨网络传输的前提是什么

前提:把报文可以从一台主机送到和自己直接相连的下一台主机(由数据链路层提供:mac帧)——》局域网通信

分片与组装

为什么要进行分片

因为底层的mac帧规定了MTU(最大传送单元)

如何进行分片和组装的

实际可以将上述问题分割成以下三个问题:

  1. 如何识别是分片报文?

  2. 如何进行合理组装

  3. 如何发现丢包问题

  4. 如何保证自己收到了所有的分片呢?

    1.通过13位的片偏移+3位标志中的”更多分片“,如果更多分片为0,则的代表没有分片,如果是1则代表有分片。
    2.根据标识聚合所有的分片报文,按照片偏移进行升序排序。
    3.每个报文都有自己的起始片偏移,起始片偏移+自身分片的长度=下一个分片报文的起始片偏移。
    4.开头没有丢失,中间没丢,收到结尾报文(更多分片为0)

什么是分片和组装

IP报文无法将报文整体发送给对方,需要将报文拆成多片到对方再进行组装

mac的有效载荷最大是MTU,其中MTU包含了什么?

IP的报头+ip的数据=MTU(1500字节),所以每一个分片都要包含IP报头。

IP:提供一种能力,将数据从A主机跨网络发送给B主机的能力。

网络划分

IP地址分为两个部分, 网络号和主机号

  • 网络号: 保证相互连接的两个网段具有不同的标识;
  • 主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;

在这里插入图片描述

  • 不同的子网其实就是把网络号相同的主机放到一起
  • 如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复

在这里插入图片描述

  • A类 0.0.0.0到127.255.255.255
  • B类 128.0.0.0到191.255.255.255
  • C类 192.0.0.0到223.255.255.255
  • D类 224.0.0.0到239.255.255.255
  • E类 240.0.0.0到247.255.255.255

上述网络划分会浪费很多网络号,所以提出了一种新的划分方案,称为CIRD

  • 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号
  • 子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾
  • 将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号

在这里插入图片描述

其实每一个子网都有自己的子网掩码

特殊的IP地址

  • 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网
  • 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包。
  • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

数据链路层

以太网

“以太网” 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;
以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等

以太网帧格式

在这里插入图片描述

如何分离?

定长报头

如何交付?

根据两个字节的类型,根据数值不一样然后决定交付给上层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值