网络层功能:地址管理,路由选择
网络层协议:IP,ICMP,ARP等
IP协议
(IPV4(主),IPV6)
IP协议头格式
网段划分:
IP地址分为两个部分,网络号和主机号
网络号: 保证相互连接的两个网段具有不同的标识;
主机号: 同⼀网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号(主机号为1的代表局域网中路由器)
早期网段划分:(已弃掉)
A类 0.0.0.0到127.255.255.255
B类 128.0.0.0到191.255.255.255
C类 192.0.0.0到223.255.255.255
D类 224.0.0.0到239.255.255.255
E类 240.0.0.0到247.255.255.255
CIDR划分
引⼊⼀个额外的⼦网掩码(subnet mask)来区分网络号和主机号
⼦网掩码也是⼀个32位的正整数. 通常⽤⼀串 “0” 来结尾
将IP地址和⼦网掩码进⾏ “按位与” 操作, 得到的结果就是网络号
网络号和主机号的划分与这个IP地址是A类、B类还是C类⽆关
例:
IP地址192.168.1.34
子网掩码 255.255.255.0
网络号为192.168.1
IP地址192.168.1.68
子网掩码 255.255.255.240
网络号为192.168.1.64
特殊IP地址
考题
答案:B(参考上面资料,原始IP地址划分)
192.168.1.110/27 27表示网络有27位,子网掩码32位中前27位为1其余为0,则网络号为192.168.1.96 因为110转化为二进制位0110 0100,因为27位1,与运算完后,得192.168.1.96(网络号),相同网络号的在同一子网,B排除,与网络号相同,表示这个局域网,不是主机,故选C
40.15.128.0/17 变换格式(只是运算)40.15.1000 0000.0/17(将128展开)这里分成了两个子网,也就只需要用一位来表示。也就是第18位 ,因为40.15.128.0/18是其一个子网IP段,第一个地址的第十八位是0,第二个子网18位只能是1喽。故选D
IP地址的数量限制
(IP不够用)
CIDR在⼀定程度上缓解了IP地址不够⽤的问题(提⾼了利⽤率, 减少了浪费, 但是IP地址的绝对上限并没有增加), 仍然不是很够⽤. 这时候有三种⽅式来解决:
1. 动态分配IP地址: 只给接⼊网络的设备分配IP地址. 因此同⼀个MAC地址的设备, 每次接⼊互联网中,得到的IP地址不⼀定是相同的。
2. NAT技术
3. IPv6: IPv6并不是IPv4的简单升级版. 这是互不相干的两个协议, 彼此并不兼容; IPv6⽤16字节128位来表⽰⼀个IP地址; 但是目前IPv6还没有普及(没有向前兼容,替换成本太高)
私有IP地址和公网IP地址
如果⼀个组织内部组建局域网,IP地址只⽤于局域网内的通信,⽽不直接连到Internet上,理论上 使⽤任意的IP地址都可以,但是RFC 1918规定了⽤于组建局域网的私有IP地址
路由
路由表可以由网络管理员⼿动维护(静态路由), 也可以通过⼀些算法⾃动⽣成(动态路由)
路由表的Destination是目的网络地址,Genmask是⼦网掩码,Gateway是下⼀跳地址,Iface是发送接⼝,Flags中的U标志表⽰此条目有效(可以禁⽤某些 条目),G标志表⽰此条目的下⼀跳地址是某个路由器的地址,没有G标志的条目表⽰目的网络地址是与本机接⼝直接相连的网络,不必经路由器转发。
⼀个介于数据链路层和网络层之间的协议
ARP协议作用
ARP协议工作流程
ARP数据报的格式
代表:ping指令,traceroute命令
- ping后边跟的是域名或者IP地址,不是URL
- ping命令不光能验证网络的连通性, 同时也会统计响应时间和TTL,延迟性等(IP包中的Time To Live, ⽣存周期).
- ping命令会先发送⼀个 ICMP Echo Request给对端;
- 对端接收到之后, 会返回⼀个ICMP Echo Reply
ICMP的报文格式
ICMP功能
ICMP两类报文
图中数字为十进制
NAT能够将私有IP对外通信时转为全局IP. 也就是⼀种将私有IP和全局IP相互转化的技术⽅法:
很多学校, 家庭, 公司内部采⽤每个终端设置私有IP, ⽽在路由器或必要的服务器上设置全局IP;
全局IP要求唯⼀, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的;
NAT IP转化过程
NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
NAT路由器收到外部的数据时, ⼜会把目标IP从202.244.174.37替换回10.0.0.10;
在NAT路由器内部, 有⼀张⾃动⽣成的, ⽤于地址转换的表;
当 10.0.0.10 第⼀次向 163.221.120.9 发送数据时就会⽣成表中的映射关系
NATP
NAT缺陷
NAT与代理服务器的区别
从应⽤上讲, NAT设备是网络基础设备之⼀, 解决的是IP不⾜的问题. 代理服务器则是更贴近具体应⽤, ⽐如通过代理服务器进⾏翻墙, 另外像迅游这样的加速器, 也是使⽤代理服务器.
从底层实现上讲, NAT是⼯作在网络层, 直接对IP地址进⾏替换. 代理服务器往往⼯作在应⽤层.
从使⽤范围上讲, NAT⼀般在局域网的出⼝部署, 代理服务器可以在局域网做, 也可以在广域网做,也可以跨网.
从部署位置上看, NAT⼀般集成在防⽕墙, 路由器等硬件设备上, 代理服务器则是⼀个软件程序, 需要部署在服务器上
OSI七层模型:
https://blog.csdn.net/Romantic_C/article/details/81665591
网络套接字:
http://www.noobyard.com/article/p-afkejdbv-pg.html
UDP服务器:
https://blog.csdn.net/Romantic_C/article/details/81705468
TCP服务器:
https://blog.csdn.net/Romantic_C/article/details/81707907
应用层:
http://www.noobyard.com/article/p-yqikerbl-rr.html
传输层:
https://blog.csdn.net/Romantic_C/article/details/81747317
网络层:
http://www.noobyard.com/article/p-flnqpmhh-qe.html
数据链路层:
http://www.noobyard.com/article/p-vsbedtvz-sw.html