JavaEE 初阶第二十五期:IP协议,网络世界的 “身份通行证”(一)

专栏:JavaEE初阶起飞计划

个人主页:手握风云

目录

一、网络层

[1.1. IP协议基础概念](#1.1. IP协议基础概念)

[1.2. IP协议头格式](#1.2. IP协议头格式)


一、网络层

1.1. IP协议基础概念

  • 主机:配有IP地址,但是不进行路由控制的设备;
  • 路由器:即配有IP地址,又能进行路由控制;
  • 节点:主机和路由器的统称

1.2. IP协议头格式

  • 4位版本号:指定IP协议的版本,对于IPv4来说,就是4。
  • 4位首部长度:IP协议中,报头也是变长的。0---15单位是4字节,IP报头最大长度为60字节。
  • 8位服务类型:3位优先权字段(已经弃用),4位TOS字段和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本,这四者之间可以转换状态,相互冲突,只能选择一个。
  • 16位总长度:IP数据包,报头和载荷的总长度。如果需要在 IP 数据报中携带超过64KB的载荷数据的时候,IP协议也是能够做到的。IP协议自身支持拆包和组包。如果传输层数据包太长了,IP自动拆成多个,每个IP 数据报,负责携带一部分传输层数据包。
  • 8位生存时间(TTL):当前的IP数据报能够在网络上存活多久,单位不是时间,而是次数。初始情况下生存时间是一个整数,数据报每次经过路由器转发一次,TTL-1。如果为0,还没有到达对方,就可以丢弃。
  • 8位协议:描述的是当前的IP 数据报载荷部分,是使用哪个协议(传输层协议)。接收和分用的时候,就需要知道当前数据包载荷部分是使用哪种协议。传输层的协议中,"目的端口"就解决解决了传输层的数据包载荷,需要交给应用层的哪个协议(应用程序) 来处理。网络层的协议中,"8位协议"区分裁荷交给传输层的哪个协议来处理。
  • 16位首部校验和:使⽤CRC进行校验,来鉴别头部是否损坏。因为计算校验和,本身是需要有开销的,所以IP 协议只关心IP报头自身是否出现传输错误。
  • 32位源地址和32位目标地址:IP地址标识了网络上某个设备所处的位置。我们可以通过cmd终端命令ipconfig查看自己设备的IP地址。理论上需要给不同的设备分配不同的IP,如果IP地址不够用,可以使用动态分配内存地址,也就是上网的人分配,不上网的人不分配。但是现在几乎人人都有智能手机,还是会导致IP地址资源紧张,所以现在使用NAT机制(网络地址映射)。所有的IP可以分为两大类:外网IP和内网IP、公网IP和私网IP。同一局域网中,不同设备的内网 IP 不能重复(否则会冲突,无法联网)。外网不可见,互联网上的设备无法直接识别或访问内网 IP。在NAT机制下,假设有两个设备A和B。如果A和B都在同一个局域网中,直接按照 IP 地址转发即可;如果A和B是在两个不同的局域网中,禁止直接进行传输;如果A是内网IP的设备,B是外网IP的设备,A能主动访问B,B不能主动访问A;如果A是外网IP,B 也是外网IP也不涉及NAT直接转发即可。关于内网 IP 如何通过外网 IP 访问互联网,NAT 相当于路由器扮演 "中介",用自己的外网 IP 替局域网内所有设备与互联网沟通,再把结果分发给对应设备。NAT本质上是让一个局域网内部的所有设备,共用同一个外网IP。本来是一个外网 IP 代表一个设备,现在是一个外网IP代表数以千计个设备了,就如同同一个里面的学生填快递邮寄地址,都会用同一个位置。

如果同一局域网下,两个不同的设备访问同一应用程序,运营商路由器应该怎么区分,把正确的数据包分给对应的设备。这里就是引入了端口号进行区分。

当设备A向应用程序发送请求,构造一个数据包,发给运营商路由器的时候,会把A的源IP替换成运营商路由器的IP地址。然后运营商路由器在替换的时候会记录一个映射关系,再发送给应用程序B。而B在收到请求后,根据它自己的业务代码逻辑计算响应,并构造一个响应数据包发给运营商路由器,NAT数据会根据记录的表格对上述内容进行还原。

如果说两个设备端口号一样,那么运营商路由器在映射的时候就会把相同的端口映射成不同的端口。

NAT还有一个"副作用":加强普通用户的网络安全性。被保护在局域网下的设备,只有主动访问别的服务器,才能给响应。不主动,就不会被别的服务器访问。如果一个设备有外网IP,相当于家的大门开在马路上,有了NAT机制,相当于给大门加了门禁。

NAT机制不是从根本上把IP地址变多了,而是提高了IP 地址的利用率。除了上述方案,IPV6就可以提高IP地址的数量,因为IPV6使用16个字节表示IP地址。但是现在互联网的现状还是以NAT为主,IPV6在世界范围内的普及率非常低。

相关推荐
wanhengidc8 小时前
BGP高防服务器具体是指什么
运维·服务器·网络·安全·游戏·智能手机
wanhengidc9 小时前
云手机性能会受到哪些因素的影响?
运维·服务器·网络·游戏·智能手机
汽车仪器仪表相关领域10 小时前
工业安全新利器:NHQT-4四合一检测线系统深度解析
网络·数据库·人工智能·安全·汽车·检测站·汽车检测
AndyYang201711 小时前
nmap 基本扫描命令
服务器·网络·安全·渗透测试·nmap·扫描工具
echoyu.12 小时前
微服务-网络模型与服务通信方式openfein
网络·spring cloud·微服务·架构·openfein
2301_8098152512 小时前
网络协议——UDP&TCP协议
网络·网络协议·udp
Yeats_Liao13 小时前
Java网络编程(一):从BIO到NIO的技术演进
java·网络·nio
GIS数据转换器14 小时前
2025无人机在低空物流中的应用实践
大数据·网络·人工智能·安全·无人机
无小道15 小时前
了解交换机,集线器,中继器,路由器
网络