【网络基础学习笔记】三、IP 网络层;
文章目录
- 三、IP 层(网络层 - 路由器 - 广域网)
- 3.1 IP 报文首部结构
- 3.2 IP地址/网段/子网掩码/广播域
- 3.2.1 IP 地址分类
- 3.2.1 子网掩码
- 3.2.2 广播域
- 3.3 路由表
三、IP 层(网络层 - 路由器 - 广域网)
网络层的作用是,在复杂的网络环境中为要发送的数据报,找到一个合适的路径进行传输。IP 是实现多个数据链路之间的通信协议,不论数据链路层是以太网还是无线LAN或是PPP,都将一视同仁。
不同数据链路有个最大区别,就是它们各自的最大传输单位(MTU: Maximum Transmission Unit)不同。在以太网中是 1500 字节,在 ATM 中是 9180 字节。
网络层向上提供简单灵活,无连接的,尽最大努力交付的数据报服务。从数据报从主机A发送到主机B的过程中可能要经历很多节点。所谓无连接是指:数据报在传输之前不需要提前规划好整个传输路线,即不用提前建立一条从发送主机到接收主机之间的传输连接路线。(如果是有连接服务,该传输路线建立好之后,各数据报必须在这条路线上传输,经历的结点路径都是相同的)。这就保证了数据传输的简单性。当数据传输到一个节点时,根据网络中的情况在决定通往下一个节点应该走哪条路线。这就保证了数据传输的灵活性。
3.1 IP 报文首部结构
- 网络层,数据包最大65535字节;链路层,数据最大是1500字节。所以,一旦超过数据链路层的最大要求时(网络层数据部分超过1480字节),数据包会分片。最大传输单元
MTU
。- IP报文在数据链路层被分片后,到达目的主机IP层的顺序可能就会发生变化,因此要对原IP报文进行合并就要根据上述的
标识
,标志位
,片偏移
对原 IP 报文进行合并。- ICMP协议号:1;IGMP协议号:2;TCP协议号:6;UDP协议号:17;IPv6协议号:41;OSPF协议号:89;
3.2 IP地址/网段/子网掩码/广播域
在IPv4中,IP地址由32位正整数来表示,所以最多 2^32(大约是43亿)个。IP地址由 “网络号
” 和 “主机号
” 组成,同一网络号下,主机号不能重复。相同的网络号表示处在同一个网段,主机之间组成一个网段,处在同一个链路上(可以理解为共用一个交换机)。那有人可能会问,连最小的 C 类地址都有6万多个地址,接一个交换机,也太多了吧?后面还有一个子网掩码的概念,把网络号再次分隔。
3.2.1 IP 地址分类
IP 地址分为 A, B, C, D 四大类(E类保留)。在公共互联网中,IP 地址不能重复,每台设备地址都唯一。
早期有许多独立的网络,不需要连接互联网,在这些独立的网络中,主机本来可以随意配置 IP 地址,但为了避免出现问题(例如误连了互联网,独立网络之间发生了连接),在 A~D类的基础上又规定了私有网络 IP 范围。于是有了公网 IP
和 私网 IP
之分。
再后来有了 NAT
技术,私有 IP 也可以和互联网上的 公有 IP 通信了。
在全面普及 IPv6 之前,互联网现状是使用 IPv4 和 NAT 技术,解决地址耗尽的问题。
通过将IP地址划分为网络号和主机号来标识,可以有如下特点:
- IP地址管理机构在分配IP地址时只分配网络号。剩下的主机号由得到该网络号的单位自行分配,这样就方便了管理就够的管理;
- 路由器在寻找目的主机的IP地址时,只需找到目的主机所在的局域网,再在该局域网内寻找目的主机。
- 具有不同网络号的局域网必须有路由器进行连接,所以路由器总是有两个或两个以上网络号不同的IP地址。
广播地址
:把主机号置为全 “1”,就是该网段的广播地址
3.2.1 子网掩码
早期,大家就是直接按照 A,B,C 类来使用的。但随着网络覆盖面越来越广,上网设备越来越多,直接使用 A,B,C 分类就会非常浪费资源。于是子网掩码出现了,把网络号进一步划分为子网。
划分网段是为了避免出现网络风暴,分隔各个网段。子网/子网掩码是为了充分利用网络号资源,一个网络号下可以分出多个子网。
子网掩码是一段连续的 “1”
,比既定的网络号位数长,用来计算网络标识。
IP 地址:172.20.100.52
子网掩码:255.255.255.192
问:子网掩码下的网络号是多少?
注:也可缩写为 172.20.100.52/26
答案是:26 位子网掩码下,网络号是 172.20.100.0。
进一步问,该子网的广播地址是多少?172.20.100.63 !将上图中实际主机号对应的 6 位,全部置 “1” 就可以了。
3.2.2 广播域
记住一句话:交换机分割冲突域,路由器分割广播域
。
本章前面提到过 IP层
的广播报文,是把某个网络号下的主机号全置为1
。而更早章节中也提过,在 MAC 层 以太网
中,广播 MAC 地址为 全F
。二者其实是相对应的,当 IP 层把广播报文提交给 MAC 层时,MAC 层就识别到这是一个广播帧(其实他也找不到这个 IP 对应的主机,根本不存在),会在组 MAC 帧时,把目的 MAC 地址置为全F。
广播
IP层:网络号(含子网号) + 全1主机号
MAC层:MAC地址全1,即 FF-FF-FF-FF-FF-FF
3.3 路由表
为了把数据包发给目标主机,所有主机(路由器)都维护着一张路由表,记录着IP数据在下一步该发给哪个路由器。
目标地址 | 子网掩码 | 网关 | 接口 | 跳数 |
---|
可以运行 route print
,显示本地计算机上的路由表。
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.10 35127.0.0.0 255.0.0.0 On-link 127.0.0.1 331127.0.0.1 255.255.255.255 On-link 127.0.0.1 331127.255.255.255 255.255.255.255 On-link 127.0.0.1 331192.168.1.0 255.255.255.0 On-link 192.168.1.10 291192.168.1.10 255.255.255.255 On-link 192.168.1.10 291192.168.1.255 255.255.255.255 On-link 192.168.1.10 291224.0.0.0 240.0.0.0 On-link 127.0.0.1 331224.0.0.0 240.0.0.0 On-link 192.168.1.10 291255.255.255.255 255.255.255.255 On-link 127.0.0.1 331255.255.255.255 255.255.255.255 On-link 192.168.1.10 291
===========================================================================
Persistent Routes:NoneC:\WINDOWS\system32>
路由表分为静态配置,和动态生成。静态路由一般由管理员手动添加,而动态路由一般由各个路由器,根据路由协议(RIP, OSPF等),互相交换路由信息而生成。这里不做详细讨论。
【网络基础学习笔记】三、IP 网络层;相关推荐
- (*长期更新)软考网络工程师学习笔记——Section 6 网络层上篇
目录 一.网络层的定义 二.IPv4数据报 三.IPv4 (一)分类依据 (二)IP地址分类 (三)网络.主机号位数 (四)特殊IP地址 四.划分子网 五.子网掩码 (一)默认子网掩码 (二)VLSM ...
- Python基础学习笔记三
Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...
- (*长期更新)软考网络工程师学习笔记——Section 7 网络层下篇
九.IPv6 (一)IPv6的定义和省略写法 IPv6是IPv4的新版本,其采用更大的地址空间,从而解决IPv4地址耗尽的问题. IPv6的地址长度为128位,通常写为8组,每组4个十六进制数,且中间 ...
- Java基础学习笔记(三)_Java核心技术(高阶)
本篇文章的学习资源来自Java学习视频教程:Java核心技术(高阶)_华东师范大学_中国大学MOOC(慕课) 本篇文章的学习笔记即是对Java核心技术课程的总结,也是对自己学习的总结 文章目录 Jav ...
- 网络基础学习系列三http
目录 应用层 协议 实现一个计算器 1无序列化和反序列化的计算器 Protocol.hpp Sock.hpp Makefile CalServer.cc CalClient.cc 2.含序列化和反序列 ...
- python socket服务器_python网络编程学习笔记(三):socket网络服务器
1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较.步骤 TCP客户端 TCP服务器 第一步 建立socket对象 建立socket对象 ...
- (*长期更新)软考网络工程师学习笔记——数据链路层与网络层的相关计算题
目录 前言 一.海明码校验码的计算 二.最小帧长的计算 三.求默认网关地址 四.网络地址.主机地址.广播地址的区分和求解 五.判断是否属于网络或子网的主机地址 六.子网划分和求子网掩码 七.子网范围和 ...
- Linux 网络编程学习笔记——三、TCP 协议详解
目录 一.TCP 服务的特点 传输层协议主要有 TCP 协议和 UDP 协议,前者相对于后者的特点是:面向连接.字节流和可靠传输. 使用 TCP 协议通信的双方必须先建立连接,然后才能开始数据的读写. ...
- Java基础学习笔记三 Java基础语法
Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型. 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 数据类型 变量名 ...
最新文章
- 太多人关注,太少人理解,这就是“量子计算”
- Android--手势触控屏幕控制/GestureDetector
- 每天一道Java题[7]
- java和python可以在一个项目中同时使用么-可以同时用python和java开发一个app吗?...
- DB2数据导入导出的小结
- 设计一种面向对象脚本语言
- pythonrgb高精度浮点运算类型_python实现RGB字符串,按24位对齐后输出对应Integer行数字...
- Java基础语法(一)
- java源代码连接jsp,java网络五子棋的源代码-JSP教程,Java技巧及代码
- 使用Python完美管理和调度你的多个任务
- Fragment 和 FragmentActivity的使用(二)
- python-opencv中的cv.CreateImage函数的参数问题
- Illustrator 教程,如何在 Illustrator 中创建颜色渐变?
- Java开发、网络爬虫、自然语言处理、数据挖掘简介
- android+即刻点赞,Android开发仿即刻点赞文字部分的自定义View
- 三维立体图的原理和欣赏方法
- GNU:gcc -v
- python词频统计GUI(thinter)
- 解决导出CSV文件乱码的问题
- 人无远虑必有近忧,90后的我如何姑娘熬成婆