0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

IP协议原理详解

CHANBAEK 来源:嵌入式攻城狮 作者:嵌入式攻城狮 2023-04-24 11:01 次阅读

1. 网络地址转换

网络地址转换(Network Address Translation,NAT)诞生于1994年,它的提出是在IPv4地址资源面临枯竭的背景下,NAT在一定程度上,能够有效的解决公网地址不足的问题。

NAT的工作原理就是重写通过路由器的数据包的识别信息。 NAT路由器将其管理的内部主机发送的数据包的源IP地址由局部地址变为全局地址,从外部传输过来的数据包则做相反转换以分配到合适的内部主机。

图片

2. IP数据报

IP协议提供不可靠无连接的数据报传输服务,IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。 IP数据报是一个与硬件无关的虚拟包,由IP首部和数据区两大部分,其中IP首部是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。

IP数据报的格式如下图示:

图片

IP数据报各字段功能如下:

版本:占据4bit空间,该字段规定了数据报的IP协议版本,对于IPv4,该值为4; 对于IPv6,该值为6; 通过查看版本号,路由器能够确定如何解释IP数据报的其他部分,不同的IP版本使用不同的数据报格式

首部长度:占据4bit空间,用于记录IP首部的数据的长度; 可表示的最大十进制数是15,但是该字段所表示的数的单位是字(32bit),即当该字段为15时,首部长度就达到15*4=60字节

服务类型(TOS):占据8bit空间,包含在IPv4首部中,以便使不同类型的IP数据报能相互区别开来。 也就是路由器根据这个字段的值来为数据报选择最合理的路径

数据报长度:占据16bit空间,是指整个IP数据报的长度(首部区+数据区),以字节为单位。 由于该字段长度为16位二进制数,因此理论上IP数据报最长可达65536个字节(事实上受物理网络的限制,要比这个数值小很多)

标识:占据16bit空间,用于表示IP层发送出去的每一份IP数据报,在发送每一份报文,该值加 1,在分片的时候,该字段会被复制到每个分片数据报中,在目标接收主机中,使用该字段判断这些数据是否属于同一个IP数据报

标志:占据3bit空间,第一位保留未用,第二位是不分片标志位,为1表示IP数据报在发送的过程中不允许进行分片,为0表示IP层在必要的时候可以对其进行分片处理; 第三位为更多分片位,为1表示该分片数据报不是整个IP数据报的最后一个分片,为0表示是整个IP数据报的最后一个分片

分片偏移量:占据13bit空间,表示当前分片所携带的数据在整个IP数据报中的相对偏移位置(以 8 字节为单位),目标主机必须受到以0偏移量开始到最高偏移量的所有分片,才能将分片进行重装为一个完整的IP数据报,并且重装IP数据报的依据就是分片的偏移量

生存时间(Time-To-Live,TTL):占据8bit空间,用来确保数据报不会永远在网络中循环。 每当IP数据报由一台路由器处理时,该字段的值减 1,若TTL字段减为0,则该数据报必须丢弃,同时会返回一个ICMP差错报文给源主机,这样数据就不会永远在网络中漂流而占据资源

上层协议:占据8bit空间,该字段仅在一个IP数据报到达其最终目的地才会有用。 该字段的值指示了IP数据报的数据部分应交给哪个特定的传输层协议。 例如,值为6表明数据部分要交给 TCP,而值为17表明数据要交给UDP。 在 IP 数据报中的协议号所起的作用,类似于运输层报文段中端口号字段所起的作用。 常用网际协议编号如下图示:

图片

首部检验和:占据16bit空间,用于协议头数据有效性的校验,可以保证IP报头区在传输时的正确性和完整性。 头部检验和字段是根据IP协议头计算出的检验和,它不对头部后面的数据进行计算

源IP地址:占据32bit空间,表示发送端IP地址

目标IP地址:占据32bit空间,表述目的端IP地址

选项字段:占据0~40个字节,允许IP首部被扩展,首部选项在日常生活中还是比较少使用的,因此在每个IP数据报首部中必须存在的字段是不包括选项字段的,这样能够节约开销,如果与选项字段就添加,没有就无需理会

数据区域:是IP数据报的最后的一个字段,也是最重要的内容,因为有数据区域才会有数据报首部的存在,在大多数情况下,IP数据报中的数据字段包含要交付给目标IP地址的运输层(TCP协议或UDP协议),当然数据区域也可承载其他类型的报文,如ICMP报文

3. IP协议抓包分析

使用ping -l size命令对指定IP地址ping指定大小字节的数据。 如下图示,对IP地址ping了4096个字节的数据:

图片

打开wireshark进行抓包,监听IP地址后,在对该IP地址ping 4096字节的数据,可以抓取到如下数据包:

由于以太网数据帧的最大长度为1500个字节,因此4096字节的数据被分为了3个片。 下图中标志(Flags)字段的第三位为1表示该数据报是分片数据报,分片偏移量(Fragment offset)为0

图片

第二段数据报的标志(Flags)字段的第三位为1表示该数据报仍然是分片数据报,此时分片偏移量(Fragment offset)为1480

图片

第三段数据报的标志(Flags)字段的第三位为0表示是整个IP数据报的最后一个分片,此时分片偏移量(Fragment offset)为1480; 三段组成一个完整的ICMP数据报

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5380

    浏览量

    171135
  • IP协议
    +关注

    关注

    3

    文章

    85

    浏览量

    21636
  • 路由器
    +关注

    关注

    22

    文章

    3708

    浏览量

    113552
  • NAT
    NAT
    +关注

    关注

    0

    文章

    141

    浏览量

    16221
  • IPv4
    +关注

    关注

    0

    文章

    142

    浏览量

    19869
收藏 人收藏

    评论

    相关推荐

    学嵌入式必看的100本书,你看过哪些?

    驱动程序》  095《现代操作系统》  096《TCP/IP 协议详解》  097《嵌入式 C 语言设计模式》  098《Struts In Action》  099《c 程序设计语言(第二
    发表于 08-17 16:25

    《TCP-IP详解_卷3_TCP事务协议,HTTP,NNTP

    《TCP-IP详解_卷3_TCP事务协议,HTTP,NNTP和UNIX域协议
    发表于 03-24 22:42 39次下载

    《TCP-IP详解_卷1_协议

    《TCP-IP详解_卷1_协议
    发表于 03-24 22:45 50次下载

    TCPv1-TCP-IP协议详解-卷1

    TCPv1-TCP-IP详解-卷1.rar I C M P经常被认为是I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。I C M P报文通常被I P层或更高层协议( T C P或U D P)
    发表于 03-16 15:12 60次下载

    TCPv2-TCP-IP协议详解-卷2

    TCPv2-TCP-IP详解-卷2.rar 第1章概述1.1 引言本章介绍伯克利( B e r k e l e y )联网程序代码。开始我们先看一段源代码并介绍一些通篇要用的印刷约定。对各种
    发表于 03-16 15:15 99次下载

    tcp ip协议详解卷三 下载

    tcp ip协议详解卷三:第三卷的内容细节覆盖了当今TCP/IP编程人员和网络管理员必须熟练掌握的四个基本方面:    T/TCP (TCP事务
    发表于 05-19 11:52 437次下载
    tcp <b class='flag-5'>ip</b><b class='flag-5'>协议</b><b class='flag-5'>详解</b>卷三 下载

    tcp ip协议详解卷二

    tcp ip协议详解卷二:第13章IGMP:Internet组管理协议13.1 引言I G M P在本地网络上的主机和路由器之间传达组成员信息。路由器定时向“所有主机组”多播I G M
    发表于 05-19 12:00 542次下载

    tcp ip协议详解卷一

    tcp ip协议详解卷一:《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/
    发表于 05-19 12:02 712次下载

    tcp ip协议_什么是tcp ip协议

    什么是tcp ip协议,tcp ip协议详解,深刻讲述了tcp ip
    发表于 05-14 16:29 6005次阅读
    tcp <b class='flag-5'>ip</b><b class='flag-5'>协议</b>_什么是tcp <b class='flag-5'>ip</b><b class='flag-5'>协议</b>

    tcp ip协议详解 中文版PDF

    很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP.IP协议族允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想。T C P
    发表于 09-24 16:26 0次下载
    tcp <b class='flag-5'>ip</b><b class='flag-5'>协议</b><b class='flag-5'>详解</b> 中文版PDF

    TCP/IP协议详解

    发表于 06-18 14:13 0次下载

    TCP-IP详解卷2_ARP:地址解析协议

    TCP-IP详解卷2 ARP:地址解析协议,学习TCP很好的资料。欢迎下载。
    发表于 05-09 14:13 0次下载

    IP:网级协议

    TCP-IP详解卷2 IP:网级协议,学习TCP很好的资料。欢迎下载。
    发表于 05-09 14:33 0次下载

    TCP和IP协议详解

    此文档详细讲述了TCP-IP协议内容,有想了解的可以看看,丰富自己的知识。
    发表于 07-13 14:25 4次下载

    LwIP协议栈源码详解—TCP/IP协议的实现

    电子发烧友网站提供《LwIP协议栈源码详解—TCP/IP协议的实现.pdf》资料免费下载
    发表于 07-03 11:22 3次下载