IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> IP协议简介 -> 正文阅读

[网络协议]IP协议简介

IP协议简介

IP协议真是一个复杂的协议。。想象一下它要直接控制数以亿计的各种网络设备,形成极其复杂的网络环境。详细介绍IP协议的方方面面并不是我们的重点,本篇只简要介绍IP协议的几个侧面。

一、IP报文格式

在这里插入图片描述
图1 IPv4与IPv6报文格式对比

  • **源地址和目标地址:**IPv4和IPv6共有部分,这个必须得有,因为IP协议就是干这个的:将数据包从源IP发送到目标IP。
  • **分片相关:**标识字段、标志字段、片偏移字段。稍后会看到IPv4的分片机制,用这3个字段保证IP分片后可以正确重组。但IPv6嫌在网络层(各路由器中)分片再重组太麻烦了,所以取消了分片机制。
  • **生存时间:**之前介绍过,网络层数据包经过一定数量的路由器后如果还没到达目的地,就会被当前路由器丢弃,同时发送ICMP协议报文给源端,通知此消息。生存时间这个量的单位其实是跳数。
  • **校验:**IPv4会对数据包进行网络层的校验(意味着每个路由器都要如此)。IPv6取消了网络层校验,因为链路层和传输层都有相应的校验机制,网络层其实做了重复的工作。

可以看到,IPv6比IPv4的首部短了很多,而且还取消了分片和校验机制。这就使得使用IPv6协议进行传输速度更快。

二、IP协议分片

讲TCP的基本性质时,提到了网络层的数据包最大运载单元(MTU)和传输层的最大报文单元(MSS)的关系:

在这里插入图片描述
图2 MTU与MSS的关系

IP层为什么要分片呢?

因为下层协议(传输层)向上层提供的单元运载能力有限(常用的以太网链路MTU为1500B),超过了下层协议的单元运载能力将导致包被丢弃,所以IP层需要确保不会出现超过链路最大运载能力的包。

IP层的分片十分简单粗暴:每个路由器测量加上IP头部的数据包长度超过MTU,则拆成多个片打出去。而当最后一跳路由器发现这些分片中的一个丢了,则抛弃所有分片,也不重传!如果没丢,则在路由器中重组这些分片。

之前也提到过,TCP会对数据长度超过MSS的部分自动分片,使得每一个TCP报文段的数据长度不大于MSS。这是为了避免触发IP层的分片机制。因为如果触发了IP分片,且当前丢失了一个IP片后,IPv4会丢掉所有其他的分片。。效率很低。而传输层的分片效率就不低了,丢了只会重传当前的分片(因为TCP会在内核中缓存其他正常收到的片)。

因此,IPv6才放弃了网络层分片的想法,既然上层协议不买账(TCP自己分片,UDP不建议传超过MSS的数据),而且在路由器中重组分片也会额外花费一些时间,那不如干脆取消了。

三、路由选择简介

IP协议最核心的部分应该就是路由选择算法了。同样也是最复杂精妙的部分,这里只简单介绍其大概的工作流程。

1.路由器结构

从物理上说路由器是由:若干输入端口、路由选择处理器、若干输出端口 构成的。

而从网络层的抽象上说,路由器本身维护着若干IP地址,每一个IP地址代表连接一个网络的接口。

每个路由器和主机维护一个路由表,即网络地址和下一跳地址的键值表。

2. 路由选择过程

  • 第一跳,源主机 to 默认网关路由器(主机连上网络后自动分配默认网关):

    当数据包还在主机这时,先查主机的路由表,主机路由表记录着默认网关的几个对内接口IP。如果匹配上了,就说明此包发向局域网,通过默认网关路由内网接口转发即可;如果匹配不上,则发给默认网关路由器IP。

  • 中间跳:路由器to路由器:

    发往外网的数据包中间可能会经历若干路由器,每个路由器都通过子网掩码判断目标IP所处的网络地址。然后对网络地址查找路由表匹配到下一跳地址,将其发出。

  • 最后一跳:目标端局域网路由器 to 目标主机:

    经过若干中间跳,现在已经到了目标主机的内网路由器了!目标路由器也有若干内网接口,所以还是会匹配与目标IP相符的内网接口IP,先把数据包发送到此内网接口上。最后,再由此内网接口经过链路层交换机转发到目标主机。

    另外,链路层交换机和网络层交换机(路由器)可不一样,链路层交换机存在于两个路由器之间的输入输出接口中间,也存在于路由器输出接口到目标主机之间。负责提供设备到设备间的传送服务,在链路层中会具体介绍这种设备。

    结合下面的图更能看清这个过程的大概:
    在这里插入图片描述
    图3 路由选择过程

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:54:21  更:2021-09-04 17:54:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 12:02:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计