【JavaSE】【网络原理】网络层、数据链路层简单介绍
目录
- 一、网络层
- 1.1 IP协议
- 1.1.1 协议头
- 1.1.2 地址管理
- 1.1.3 路由选择
- 二、数据链路层
- 2.1 以太网
- 2.1.1 以太网数据帧
- 2.1.2 认识MTU
- 2.1.3 ARP协议
- 三、DNS

一、网络层
主要工作:
- 地址管理:使用IP地址。标识网络设备的位置;
- 路由选择:在两个通信节点之间,规划一条合理路径。
1.1 IP协议
1.1.1 协议头
协议头格式:
内容简介:
- 四位版本号:指定协议的版本,IPv4 和 IPv6
- 四位首部长度:单位四字节,最大表示60字节((2^4) - 1 * 4),但是IP协议首部长度也是可变的,通过选项。
- 8位服务类型:决定IP协议的工作方式。
3位优先权字段(已经弃⽤),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表⽰:最⼩延时,最⼤吞吐量,最⾼可靠性,最⼩成本。这四者相互冲突,只能选择⼀个。对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要。
- 16位总长度:IP数据报整体的总长度(IP协议内置了拆包组包功能)
- 16位标识:表示当前哪几个包是一组的。在拆包的时候,将同一个包拆下来的设为相同的标识。
- 3位标志:第一位保留(现代没使用),第二位表示是否触发拆包(1表示触发),第三位表示是否是最后一个子包(1表示最后一个,其余都是0)
- 13位片偏移:描述先后顺序,在组包的过程,偏移小的包放在前。
- 8位生存时间(TTL):一个IP数据报,能够在网络上传输的最大时间(实际是次数),数据报每经过路由器转发一次,TTL就减一。
- 8位协议:标识传输层使用哪种协议
- 16位首部检验和:使⽤CRC进⾏校验,只校验首部,不校验载荷了
- 32位源IP地址:源IP地址
- 32位目的IP地址:目的IP地址
1.1.2 地址管理
为保证IP的唯一性,网络设备的数量早超过32位表示的IP数量,解决方法:
- 动态分配IP:上网分配,不上网不分配
- NAT机制,网络地址转换:把所有IP分为两大类:公/外 网IP,私/内 网IP(172.16. * - 172.32. * 和 192.168. * 和10. *)。我们只要求公网IP唯一,私网IP在不同的局域网中可以重复。NAT机制就可以使用一个公网IP 对应一系列私网IP
- 使用IPv6:IPv6使用16个字节来表示IP地址
NAT机制下,网络通信进行的方式:
- ( 同一个局域网,设备A访问设备B);和(公网设备A访问公网设备B):NAT不起作用
- (不同局域网,设备A访问设备B)和 (公网设备A访问私网设备B):NAT机制禁止这种访问方式。
- 局域网设备A访问公网设备B:若干个私网IP共用一个公网IP,设备A的IP会在发给它的公网设备的时候会替换源IP(会使用“哈希表”结构记录,以便返回报文)为公网设备IP,继续发送到目的IP的设备。
网段划分 :
涉及到组建网络环境(组网)。
- 把一个IP地址,分成两个部分,前半部分,称为“网络号”,后半部分称为“主机号”。比如:192.168.100.98,
192.168.100
就是网络号,98就是主机号(这种是可以自己配置,子网掩码属性1的比特位表示网络号)。 - 在一个局域网中,网络号必须相同,主机号必须不同;
- 两个相邻局域网中,网络号必须不同,主机号无限制。
特殊的IP地址:
- 将IP地址中的主机地址全部设为0,就成为了⽹络号,代表这个局域⽹;
- 将IP地址中的主机地址全部设为1,就成为了⼴播地址,⽤于给同⼀个链路中相互连接的所有主机发送数据包;
- 127.*的IP地址⽤于本机环回(loop back)测试,通常是127.0.0.1
1.1.3 路由选择
路由选择:通过IP协议,进行数据转发的过程。问路的方式是启发式、探索式的。
网络环境非常复杂,一个路由器只能知道附近的网络情况。当数据包到达某个路由器的时候,就会匹配这个路由器记录周围设备信息的“路由表”,如果目的IP刚好在此表中,直接按照对应转发。如果没有匹配到,路由表中就按照上图“下一跳”。
路由表大致长相:
-
二、数据链路层
2.1 以太网
以太网 是数据链路层 + 物理层的协议。通过网线上网走的协议就是以太网。
2.1.1 以太网数据帧
格式如下图:
-
-
源地址和⽬的地址是指⽹卡的硬件地址(也叫MAC地址),⻓度都是6个字节,是在⽹卡出⼚时固化的;
-
-
帧协议类型字段有三种值,分别对应IP、ARP、RARP;
-
帧末尾是CRC校验码。
IP和Mac的对比:
- IP地址描述的是路途总体的 起点 和 终点;
- MAC地址描述的是路途上的每⼀个区间的起点和终点;
2.1.2 认识MTU
MTU 就是对数据包大小的限制。和通信的硬件结构相关。
MTU对各协议的影响:
- IP协议:会使IP协议数据包不断拆包组包
- TCP协议:通信双⽅会进⾏MSS协商,MSS的值正好是在IP不会被分⽚处理的最⼤⻓度(这个⻓度仍然是受制于数据链路层的MTU)
- UDP协议:一旦数据报携带数据长度超过1472,就会在网络层分层多个IP数据包
2.1.3 ARP协议
ARP:功能是根据IP地址,得到对应设备的mac地址。
工作流程:
三、DNS
DNS:域名解析系统。是⼀整套从域名映射到IP的系统。
-
-
DNS是应⽤层协议
-
DNS底层使⽤UDP进⾏解析
-
浏览器会缓存DNS结果