【JavaEE初阶】网络层-IP协议

目录

IP协议

IP协议的报文结构

IP协议/网络层做的工作是什么

IP协议的各部分的含义和作用

4位版本

4位首部长度

8位服务类型(TOS)

16位总长度(字节数)

拆包组包功能是如何实现的

8位生存时间(TTL)

TTL是64bit够用吗?

什么是"六度空间"?

8位协议

16位首部检验和

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

那IP地址不够用了咋办?


IP协议

IP协议的复杂程度和TCP差不多

日常开发的时候,最多是用到传输层就够了,关于网络层,除非你是专门开发路由器的工程师,否则一般不会涉及

IP协议的报文结构

IP协议/网络层做的工作是什么

  • 地址管理:使用IP地址来标识网络上的某个设备的位置
  • 路由选择,在两个通信节点之间,规划出一个合理的路径

IP协议的各部分的含义和作用

4位版本

  • 标识了IP协议的版本号,开发阶段主要使用IPv4
  • IPv6是最近几年才多起来的
  • IPv6是大规模商用的版本

4位首部长度

  • IP协议的报头长度(也有"选项"以供扩充长度)
  • 以4字节为基本单位
  • 四位 最多可以表示 1111 -> 换算成十进制->15,说明4位首部长度最多可表示 15*4=60 字节的长度

8位服务类型(TOS)

  • 决定了IP协议的工作方式
  • 8位服务类型:3位优先字段(已弃用),4位TOS字段,和1位保留字段(必须置为0),4位TOS分别为
  • 最小延时(A->B花时尽可能短)
  • 最小成本(系统开销低)
  • 最大吞吐量(单位时间传输最多)
  • 最高可靠性(可靠性传输优先)
  • 这四者相互冲突,**只能选择一个,**当前的系统要最优先保证哪个性能
  • IP协议可以切换工作状态↑

16位总长度(字节数)

  • 一个IP报头+载荷的长度->一个IP数据包的长度
  • 最大长度为64KB
  • IP协议内置了拆包组包功能
  • 比如,IP要携带一个比较大的TCP数据报,IP协议就会自动拆成多个,通过多个IP数据报共同传输一个TCP数据报
拆包组包功能是如何实现的
  • 16位标识的作用:拆包:把拆出来的多个包,设为相同的标识、组包:把标识相同的数据包组合到一起
  • 3位标志:其中一个标志位,表示是否触发了拆包操作,还有一个表示当前包是否是最后一个
  • 13位片偏移:表述了数据报的先后顺序,偏移量小的放前面,偏移量大的放后面

【面试题】如果基于UDP实现传输超过64KB的数据,要怎么设计?

  • 可以参考IP协议
  • 在应用层协议中,程序员自己手动写代码来实现 "标识符"、"标志位"、"片偏移"

8位生存时间(TTL)

  • 一个IP数据报在网络上传输的最大"次数"
  • IP数据报每经历一次路由器的转发,TTL值就-1,TTL减到0,就说明包到不了,这个包就会被丢掉
  • 比如发了一个错误的数据包(目的IP写错了),是注定不可能达到的,这个包也不能无限传输啊,不仅占宽带还没有用~
  • 通过cmd指令查看TTL的情况:ping+想要访问的域名
TTL是64bit够用吗?
  • 当64步还不能到达目的ip时,TTL还可以自动设置为更大的值->128
  • 其实网络中还有一个"六度空间"理论->两个设备之间,不需要经历这么多次转发
什么是"六度空间"?
  • 每个路由器虽然只认识与它相邻 的设备,但是路由器可以发动朋友(相邻的路由器)/朋友的朋友去找目的设备
  • 每层朋友都会竭尽全力地去找
  • 一般来说,最多经过六层"朋友",就能找到目的设备

8位协议

  • 标识了传输层使用了哪种协议
  • 数据链路层到网络层=>也有一个类似的协议编号
  • 网络层到传输层=>8位协议
  • 传输层到应用层=>端口号

16位首部检验和

  • 只检验首部
  • 而载荷部分是由TCP、UDP进行校验

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

  • 是IP协议最关键的部分
  • IP地址本质上是通过32位的整数来表示的
  • 由于32位整数不方便阅读,于是通常会通过点分十进制的方式来表示IP地址
  • 用三个点,分出四部分
  • 每个部分的取值范围是 0-255
  • 32位IP地址,只能表示42亿9千万个不同的IP
  • 随着移动互联网时代开启。物联网时代开启(冰箱空调等)
  • 现在看来,IP地址的分配已经捉襟见肘了

那IP地址不够用了咋办?

方案一:动态分配IP

  • 上网的分配,不上网的不分配

方案二:NAT机制 网络地址转换【当前世界的最主要方式】

  • 把所有的IP分为两类:公网IP和外网IP

关于NAT机制,下节会进行详细解说~

太棒了!你居然耐心地看完了这些知识!

有这个毅力你做什么都能成功的!(๑•̀ㅂ•́)و✧

下节再见✿✿ヽ(°▽°)ノ✿~

相关推荐
韩立学长2 分钟前
【开题答辩实录分享】以《以体验为中心的小学古诗互动学习App的设计及实现》为例进行选题答辩实录分享
java·spring·安卓
❆VE❆5 分钟前
websocket升级:实时通信实现竞价间功能、心跳+重连
网络·websocket·网络协议
萤丰信息6 分钟前
科技赋能智慧园区:解码绿色转型的“数字密码”
java·大数据·人工智能·科技·安全·智慧城市·智慧园区
qq_白羊座8 分钟前
HTTP请求走私攻击
网络·网络协议·http
C_心欲无痕14 分钟前
Docker 网络:默认三大模式
网络·docker·容器
小李独爱秋18 分钟前
计算机网络经典问题透视:流式存储、流式实况与交互式音视频的深度解析
服务器·网络协议·计算机网络·安全·音视频
码农阿豪20 分钟前
远程调试不再难!Remote JVM Debug+cpolar 让内网 Java 程序调试变简单
java·开发语言·jvm
stillaliveQEJ24 分钟前
【JavaEE】Spring AOP(二)
java·spring·java-ee
-To be number.wan28 分钟前
2010年408(34)真题类似题详解:报文交换 vs 分组交换时延对比
网络·计算机网络
济61731 分钟前
linux(第十五期)--蜂鸣器实验-- Ubuntu20.04
linux·运维·服务器