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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 互联网协议第四版ipv4 -> 正文阅读

[网络协议]互联网协议第四版ipv4

互联网协议第四版IPv4


概述

  • ipv4协议作用:通信过程的搬运工,复杂在设备之间携带数据。
  • 路由器的作用:将两个局域网连起来。互联网就是无数局域网和路由器组成的集合

Ipv4地址

  • 32位的地址,用来唯一标识连接到网络的设备,每8个二进制位为一组,可以把每组的8个二进制为转化为对应的十进制位。如11000000 10101000 00000000 00000001可以写成192.168.0.1

  • 每个ip地址都包含两部分:网络地址和主机地址。

    网络地址:用来标识设备所连接到的局域网(就是这个主机处在哪个网段)

    主机地址:用来标识这个网络中的设备本身(在这个网段中,这个主机是第几号)

    划分主机地址和网络地址:子网掩码

  • 子网掩码:32位,使用1的部分标识网络地址,使用0的部分表示主机地址

    IP地址:10.10.1.22

    二进制:00001010 00001010 00000001 00010110

    子网掩码:11111111 11111111 00000000 00000000(255.255.0.0)

    子网掩码中1的部分位网络地址,0的部分为主机地址,那么这里10.10.0.0为网络地址,0.0.1.22为主机地址

    为了简便,IP地址和子网掩码也可以写成CIDR形式,也就是一个完整的IP地址后加一个/,斜杠右边表示网络部分的位数。本例可以写为10.10.1.22/16

IPv4头

0-34-78-1112-1516-1920-2324-2728-31
版本号首部长度服务类型服务类型总长度总长度总长度总长度
标识符标识符标识符标识符标识分片偏移分片偏移分片偏移
存活时间存活时间协议协议首部校验和首部校验和首部校验和首部校验和
源IP地址源IP地址源IP地址源IP地址源IP地址源IP地址源IP地址源IP地址
目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址
选项选项选项选项选项选项选项选项
数据数据数据数据数据数据数据数据
  • 版本号:ip所使用的版本

  • 首部长度:IP头的长度

  • 服务类型:优先级标志位和服务类型的标志位,被路由器用来进行流量的优先排序

  • 总长度:IP头与数据包中的数据的长度

  • 标识符:一个唯一的标识数字,用来识别一个数据报或者被分片数据报的次序

  • 标识:用来标识一个数据包是否是一组分片数据包的一部分

  • 分片偏移:一个数据包是一个分片,这个域中的值就会被用来将数据据包以正确的顺序重新组装

  • 存活时间:用来定义数据包的生存周期,以经过路由器的跳数/秒数进行描述

  • 协议:用来标识在数据包序列中上层协议数据包的类型

  • 首部校验和:一个错误检测机制,用来确认IP 头的内容没有被损坏或者篡改

  • 源IP地址:发出数据包的主机IP地址

  • 目的IP地址:数据包目的地的IP地址

  • 选项:保留作额外的IP选项。它包含着源站选路和时间戳的一些选项

  • 数据:使用IP传递的实际数据

ICMP数据包中的IP数据包
Internet Protocol Version 4, Src: 192.168.3.113, Dst: 110.242.68.1
版本号   
	0100 .... = Version: 4
首部长度    
	.... 0101 = Header Length: 20 bytes (5)
服务类型    
	Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
总长度    
	Total Length: 60
标识符    
	Identification: 0xd843 (55363)
标识   
	Flags: 0x0000
分片偏移    
	Fragment offset: 0
生存时间    
	Time to live: 128
上层协议    
	Protocol: ICMP (1)
首部校验和    
	Header checksum: 0x0000 [validation disabled]
    [Header checksum status: Unverified]
源地址   
	Source: 192.168.3.113
目的地址    
	Destination: 110.242.68.1


IPv4数据报存活时间TTL

  • 定义了在该数据包被丢弃之前所能经历的时间,或者能够经过的最大路由数目。

  • TTL通常在创建时就会被定义,每次被发往一个路由器的时候就减1。

    比如一个数据包的TTL=2,每经过一个路由器,TTL=TTL-1,如果TTL=0时包还没有到目的地址,就会把这个包丢弃(只是通常情况下-1,在繁忙的路由去上也可能-2)

  • 为什么要定义TTL值?从源地址到目的地址的过程中,可能会路过配置错误的路由器,有可能会出现数据包在路由器之间循环转发的情况,如果循环的数据包过多就会造成带宽减少,甚至出现拒绝服务(DoS)情况的出现。使用TTL就可以防止这个潜在的问题出现。

IP分片

  • 数据分片将一个数据流分为更小的片段,他是IP用于解决跨越不同类型网络时可靠传输的一个特性

  • 分片主要是基于数据链路层协议所使用的最大传输单元MTU的大小以及数据链路层的设备配置情况,一般情况下,第二层使用的链路层协议是以太网,默认MTU=1500,也就是说,以太网的网络上所能传的最大报文的大小是1500字节(不包括14字节的以太网头)

  • 准备传输一个IP数据包的时候,会比较数据包的大小和MTU的大小决定是否分片,如果数据包大小>MTU就会分片

    分片步骤
    (1)设备将数据分为若干个将要接下来进行传输的数据包
    (2)每个IP头的总长度字段会被设置为每个分片的片段长度
    (3)除了最后一个分片数据包外,之前所有分片数据包的标志位都被表示为1
    (4)IP头中分片部分的分片偏移将会被设置
    (5)数据包被发送出去
    
  • IP分片真的好少见,我抓了五万多个包,愣是没发现有Fragment offset的值不是0的。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 09:12:22  更:2021-11-26 09:14:22 
 
开发: 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年11日历 -2024/11/26 7:26:53-

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