网络原理一> ip协议相关特性

目录

概述:

IP协议和TCP协议复杂长度差不多,这里可以大概理解一下
IP协议属于网络层的协议,主要功能有两个
1.路由选择:在两个通信节点之间,规划出一条合理的路径
2.地址管理使用IP地址这样的概念,标识网络上某个设备的位置

IP协议结构属性理解:

4位版本:

开发阶段IPV4,和IPV6是当下主要使用的版本
IPv4使用,4个字节最为IP地址
IPv6使用16个字节作为IP地址

4位部首长度:

IP协议报头有选项,所以是边长的结构, 4位部首长度单位是4字节,能表示的最大值为二进制的"1111"就是十进制的15,所以IP协议头部最大长度为15*4=60字节

8位服务类型:

可以让IP协议切换工作状态,

16位总长度字节数:

**包括了IP数据报,报头+载荷的总长度,因为是16位,总长度就是2的16次方减一,就是64KB;但是在实际应用中受数据链路层的MTU限制,数据超过规定MTU,就会把数据包拆成多个IP数据包进行组装
触发后的拆包组包操作是这样的:
16位标识:把把拆出来的包,标记为相同的标识,再把相同标识的数据包组合到一起


3位标志位:描述了其中一个标志位,是否触发了拆包操作,还有一个标志位描述当前数据包是否是最后一个


13位片偏移:描述了组包的先后顺序,偏移小的放到偏移大的前面
注意:面试如果让你设计:怎样让UDP传输超过64KB的数据?就可以根据上面的:16位标识,3位标志位,13位片偏移来设计

8位生存时间:

一个IP数据包,能在网络上传输的最大时间:
IP数据包每经过一次路由转发,TTL值就减一,TTL减到0就表示这个数据包传播到目的地的,被丢弃

8位协议:

标识传输层使用什么协议,在网络层调用下一层分用时候,把数据包交给传输层时,这个时候8位协议就起到区分的效果,效果和应用层的端口号有异曲同工之妙

16位部首检验和:

IP协议里面一般传输,UDP或者TCP协议时候就,这个两协议的校验和进行检验,不知道校验和的参考上一篇文章-->点击

32位源IP地址和32位目的IP地址:

IP地址最关键的部分,IP地址本质通过32位整数来表示,但是由于32位整数不方便阅读,就用点分十进制表示了-->三个点分出四个部分如下:每个部分范围0~255
这里有个为问题?32位IP地址只够表示42亿9千万的数据,现在肯定不够的,一下我们说明一下解决方式。

IP地址不够用的解决方法:

一.动态分配IP地址:

使用就分配,不使用就不分配

二.NAT机制(当前最主要的方式):

我们知道:公网IP又叫外围IP,私网IP又叫内网IP;公网IP是唯一的不允许重复,同一局域网私网IP不可以重复


NAT机制具体就是网络地址转换,总结就是用一个外网IP,对应一堆内外设备来使用
如图:

IP地址组成和路由选择:

组成:

IP地址由网络号+主机号组成
特殊的IP:主机号为全1为广播,局域网中主机号不能设为0; 网络号127开头用于本机环回测试

路由选择:

路由选择就和问路是一样的,网络环境非常复杂任何一个路由器无法存储所有的网络信息,但是每个路由器可以知道自己附近网络的情况,比如和谁相连,通过层层问路,就可以找到指定路径


具体过程如下:
当数据报达到某个路由器的时候,会匹配这个路由器的路由表,路由表会存储着某个设备的周围设备的IP,以及会记录这个设备通过哪个口,转发给别的设备
如果目的IP刚好匹配到某个路由器的路由表中的记录,那么直接按照当前对应的口转发过去即可,如果没有匹配到对应的路由表信息,也没事,路由表会有一个特殊的表项"吓一跳",直接指向这个设备的上一级路由器所在的位置,上一级路由器包含的信息更广可以在那里寻找

相关推荐
丿罗小黑26 分钟前
Pytest项目_day01(HTTP接口)
网络协议·http·pytest
小白学大数据34 分钟前
Superagent 异步请求:如何处理复杂的 HTTP 场景
开发语言·网络·python·网络协议·http
hgdlip1 小时前
贴吧ip什么意思?贴吧ip可以查到姓名吗
网络·网络协议·tcp/ip·贴吧
hgdlip2 小时前
soul能用ip精准定位吗?ip属地准确吗
网络·网络协议·tcp/ip·soul
给我个面子中不3 小时前
https握手过程
网络协议·http·https
无名之逆3 小时前
Hyperlane:Rust 语言打造的 Web 后端框架新标杆
开发语言·前端·网络·网络协议·rust·github·ssl
智联视频超融合平台4 小时前
大华HTTP协议在智联视频超融合平台中的接入方法
网络协议·http·音视频·实时音视频·视频编解码
网工老刘4 小时前
专题十一:路由协议
网络·网络协议
A__tao7 小时前
SSE vs WebSocket,谁更适合实时文本传输?
网络·websocket·网络协议
小爬虫程序猿11 小时前
爬虫代码中需要设置哪些HTTP头部信息?
爬虫·网络协议·http