尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

计算机网络‑IP 协议解析:核心特性总结

计算机网络‑IP 协议解析:核心特性总结 博客主页小谢同学的小破站✍️ 本文由小谢同学的小破站原创首发于 CSDN☕ Java学习专栏java MySQL专栏MySQL 数据结构与算法Java 数据结构与算法C语言专栏: C语言 欢迎点赞 收藏⭐ 留言发现错误欢迎指正✨ 脚踏实地持续深耕奔赴自己的目标✨– – – – – 分割线----------IP协议1. 认识IP协议1.1 IP协议结构1.2 IP协议的核心特性2. IP协议的问题以及解决办法2.1 解决方案1:动态规划分配IP地址2.2 解决方案2:.NAT网络地址转换2.3 面试高频考点前言这里是小谢同学的 IP协议的学习记录整理IP协议相关内容。笔记用于自我复盘巩固有错误欢迎大家指出专栏还有 Java、网络、C 语言系列笔记欢迎翻阅.1. 认识IP协议IPInternet Protocol网际协议工作在TCP/IP 五层模型‑网络层是整个互联网路由转发的基石。IP协议负责把数据包从源主机跨越多个路由器转发到目标主机解决跨局域网的数据传输问题。1.1 IP协议结构解释:默认的首部长度为:20四位版本号(version): 分为IPv4与IPv6,IPv4值为4,IPv6值为64位首部长度(IHL): 首部长度占:4bit,单位为:4字节;最小首部长度:无选项时,首部20字节-20/4 5最大首部长度:4 位二进制最大可以表示的数字15(2^4-1 15) 而2. 首部长度这个字段占4bit但是单位是 4 字节规定首部长度数值 × 4 IP 首部字节数;所以最大长度为:15×4 608 位 服务类型 TOS:用来标记数据包想要的传输优先级,使用4位TOS字段和一位保留字段延时、吞吐量、可靠性,成本(只有一个是1,另外3个是0)但是现在已经很少使用了;注意:每一位上为1时: 延时为:代表最小延时;吞吐量:最大吞吐量;可靠性:最高可靠性;成本:最小成本16位总长度: 整个IP数据包的总字节大小(首部数据)最大值为65532字节,以太网一般单帧限制在1500字节,超过了就要进行分片(也就是拆包和组包)16位标识: 同一个数据包拆包出来的身份标识,接收方使用身份标识来判断这些数据是否属于同一个包3位标志位:第一位:保留(意思是现在不用,但是还没想好说不定以后会用到),第二位为1:标识禁止分片,这时候如果报文长度超过了MTU,IP模块就会丢弃报文,第三位表示更多分片,如果分片了最后一个分片位置置为1,其他为0,类似于结束标识(如C语言中的\0)那么IP协议是如何拆包组包的?假设发送前的数据很大,此时就会触发分片,此时16位标识就相当于ID告诉对方我是同一个数据的进过不断的传输过程中,就可能出现了数据传输顺序的错误此时接收方:就能通过相同的标识来确定不同的分片是否为同一个数据,通过13位片偏移来确定数据不同分片原来的一个位置此时就能通过标识,片偏移,标志位来保证拆包组包过程中不会发生数据的错误8位TTL(生存时间Time‑To‑Live): 数据包最多可以经过多少个路由器。每经过一台路由器让TTL‑1。衍生出新的问题-如果8位生存时间只有32或者64再或者128,那么这个TTL传输的次数够吗?答案:够的,此处涉及到一个社会科学-六度空间理论六度空间理论: 六度空间理论认为世界上任意两个人之间最多只需通过六个人就能建立联系。也就是说,理论情况下,一个人大概会有100多个朋友,我可以通过这些朋友的朋友的朋友的朋友来联系到世界首富;真实情况下,我的能量比较小,根本联系不到,但是计算机网络这个层次上可以联系到世界首富此时8位TTL生存时间是足够的8位协议Protocol: IP 上层是什么协议会告诉目标主机把 IP 的数据交给谁处理。16 位 首部检验和: 只会校验IP头部,不会管后面数据的校验,路由器进行转发时,每次转发TTL都会减1,所以,每次进过下一跳都必须重新计算校验和32 位 源 IP 地址: 发送这个数据包主机的 IPv4 地址。32 位 目的 IP 地址: 数据包最终要送到哪里的 IPv4 地址路由器就是读取这个字段查路由表转发。IP地址描述了当前这个地址是什么样子的,32位整数,会分成4个部分中间采用 . 来进行分割(每个部分的取值0-255)例如:192.168.100.55选项: 可选字段长度可变。一般很少用,只要有选项IP 首部长度就大于 20 字节。数据: IP 数据包的载荷。存放 TCP/UDP/ICMP 等上层协议报文。1.2 IP协议的核心特性IP 五大核心特性:无连接Connectionless:IP协议发送数据之前不需要和对方建立连接不可靠Unreliable:传输过程中可能出现丢包现象,IP协议本身没有重传机制,也没有超时重试,不能确保传输过程中不出现丢包现象;基于数据报Datagram传输:P 传输的最小单位叫IP 数据报每个报文自带完整的头部信息源 IP、目的 IP。路由器会以单个数据报为单位进行转发支持分片Fragmentation:链路层一次能传输的数据长度是有限的MTU 最大传输单元以太网一般 1500 字节。超过就会触发拆包和组包机制;独立路由选择:IP数据包经过路由器转发过程中每一个的IP数据包的路径都是不一样的,也会出现后发先至的问题,接收方依靠片偏移来确定IP数据包在原数据里的具体位置,进行组包.2. IP协议的问题以及解决办法IP地址设置的初衷:为了区分设备,期望每一个设备都有和别人不一样的IP地址32位数字表示的范围:0-42亿,移动互联网之前,这个数量数量是足够的,但是移动互联网开启之后,大概现在人手会有一台手机,甚至两台,这个数量远远超过了表示范围,此时就面临着IP地址不够用的问题;甚至冰箱都能进行联网2.1 解决方案1:动态规划分配IP地址第一种解决方案:动态规划分配IP地址(已经在使用,但是效果比较有限)动态分配 IP设备在开机的时候不会自带固定 IP会主动向局域网内的DHCP 服务器申请一个空闲的 IP 地址服务器从预先准备好的IP 地址池中挑一个分配给它。此时就能节省一大部分的设备暂时不需要分配IP地址;工作流程DHCP 四步握手DHCP Discover发现*:主机刚接入网络的时候,不知道DHCP服务在哪,会进行广播发送请求,询问服务器有没有DHCP服务器,我像要一个IPDHCP Offer提供:DHCP 服务器收到广播请求如果有就会从 IP 池选出一个空闲 IP回复给主机。注意:IP 只是预留还没正式给到手上。DHCP Request请求:主机选中其中一台服务器给出的 IP再次广播告知服务器我就要这个 IP 了。DHCP Ack确认:服务器最后会发确认报文IP 正式分配成功同时会附带租期信息。租期:租期未结束,客户端主动续约,会延长使用时间,会继续沿用当前IP;租期结束:IP就会回收,设备必须重新申请IP2.2 解决方案2:.NAT网络地址转换第二种解决方案: NAT网络地址转换(核心方案)NAT网络地址转换: NAT 设备通常是路由器维护一张地址转换表记录着「内网 IP 端口」与「公网 IP 端口」的映射关系。两个核心概念:内网:处在路由器 NAT 的后方、会受路由器管控的本地网络。(内网设备使用私有 IP 地址私有 IP 只能在局域网内部通信不能直接在互联网上路由公网上的服务器无法主动找到你的内网 IP。)就像家里的WiFi,手机,电脑等电子产品连接到的网络,路由器分配给他们的192.168.1.2、192.168.1.3,此时这些设备就属于在内网;内网IP网段:10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255外网:路由器以外、运营商主干互联网。(外网设备使用公网 IP 地址。公网 IP 是全网唯一的地址可以在整个互联网路由互联网上任意主机都能够定位到这个 IP。)百度服务器180.101.49.11、你家路由器从运营商拿到的 IP 地址就属于外网 IP。外网网段:内网以外的IP内网和外网的边界:路由器的 NAT 网关,路由器 LAN 口一侧 →内网;路由器 WAN 口一侧 →外网互联网转化流程:数据出站内网 → 外网内网主机如192.168.1.100:5000发数据包到外网经过 NAT 路由器时路由器把源 IP替换成自己的公网 IP如202.100.1.1同时在转换表中记录映射192.168.1.100:5000 ↔ 202.100.1.1:6000外网服务器看到的请求来源是公网 IP不知道内网真实地址数据入站外网 → 内网外网服务器回复数据包到202.100.1.1:6000NAT 路由器查转换表发现6000端口对应内网192.168.1.100:5000把目的 IP替换成内网 IP转发给对应主机注意:如果接收方和发送方端口号一致时,端口号也会发送地址转换;关键NAT 靠端口号来区分同一公网 IP 下的不同内网设备这叫PAT端口地址转换也是实际最常用的 NAT 方式。2.3 面试高频考点1.为什么外网服务器不能主动访问内网主机NAT 路由器里面的映射记录只能由内网主机主动向外发数据包才会创建。外网主机一开始没有任何映射条目路由器收到外网主动发来的数据找不到对应的内网主机数据包就直接丢弃。如果需要外网访问内网服务需要手动配置端口映射端口转发2.简述 IP 数据包分包组包的过程当IP数据包携带比较大的载荷时,如果报文长度超过链路MTU无法一次性转发,就会触发拆包组包路由器会将大报文拆分成若干个分片,使用16位标记来进行标记,确保当前分片是同一个数据同一个报文而网络传输中可能出现乱序的情况,类似于后发先到,此时就会依靠13位片偏移来标记数据在原数据中的位置,根据片偏移来进行排序;同时会依靠标志位来判断是否到达最后一个分片3.什么是 NAT作用是什么?节约公网 IP 资源缓解 IPv4 地址枯竭屏蔽内网主机外网无法直接访问内网设备带来一层基础安全防护实现内网‑外网之间的数据包转发。4.NAT 转换改的是源 IP 还是目的 IP内网→外网出站修改【源 IP、源端口】 目的 IP 保持不变外网→内网回程修改【目的 IP、目的端口】 源 IP 保持不变口诀出去改源回来改目的 返回目录
返回列表