Linux网络编程(网络层)-ip协议/地址管理/路由选择
Posted AllenSquirrel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络编程(网络层)-ip协议/地址管理/路由选择相关的知识,希望对你有一定的参考价值。
网络层:负责地质管理与路由选择
-
IP协议:
注:
udp报文大小大于MTU,则会在网络层进行数据分片,分割成多个小的数据分片进行传输
MTU:最大传输单元 (链路层所限制的一个最大数据帧大小)以太网默认1500
tcp传输不会在网络层进行数据分片,tcp在三次握手阶段就会双方协商mss(最大数据段大小),所以在通信时,传输数据大小都不会大于mss
MSS就是根据MTU计算出的最合适的数据传输大小 mss=mtu-ip-tcp
-
地址管理:
ip地址组成:网络号+主机号
网络号:网络标识,一个网络中分配地址都拥有相同的标识
只要保证每个网络中网络号不同,则每个网络ip地址不会冲突
主机号:在一个网路内主机标识
网络号(网段)划分:
- A类网络:高1位固定为0,7位网络号,24位主机号 网络号范围:0~127 每个网络拥有2^24个主机
- B类网络:高2位固定10,14位网络号,16位主机号 网络号范围:128.0~191.255 每个网络拥有2^16个主机
- C类网络:高3位固定110,21位网络号,8位主机号 网络号范围:192.0.0~223.255.255 每个网络拥有2^8个主机
子网掩码:更细致网络划分
- 子网掩码取反得到一个网络最大主机号
- 最大主机号+1=子网中主机号个数
eg 对于网络号为:192.168.2 子网掩码为255.255.255.240 则能分配的ip地址范围为: 192.168.2.0~192.168.2.15 最大主机号个数为16
- 子网掩码&ip地址得到子网网络号
- 子网主机号为0的ip地址=子网网络号(子网主机号为0的ip地址实际上不能分配给某一个主机)
eg.一个公司,申请c类网络号192.58.45.0 (192.58.45.0/24)公司四个部门,划分为四个子网,如何划分,每个子网子网掩码多少?网络号多少?ip地址范围多少?
c类网络 256个主机号 每个子网64个主机号
子网掩码=主机号64取反:255.255.255.192
序号 | ip地址范围 | 子网掩码 | 子网网络号 |
1 | 192.58.45.0~192.58.45.63 | 255.255.255.192 | 192.58.45.0 |
2 | 192.58.45.64~192.58.45.127 | 255.255.255.192 | 192.58.45.64 |
3 | 192.58.45.128~192.58.45.191 | 255.255.255.192 | 192.58.45.128 |
4 | 192.58.45.192~192.58.45.255 | 255.255.255.192 | 192.58.45.192 |
特殊IP地址:
(1)0.0.0.0 可被识别为本机任意网卡ip地址 常用于服务器绑定监听地址
(2)255.255.255.255 全网广播地址
(3)127.0.0.1:每个主机上的虚拟回环网卡地址 进行本地网络回环测试
(4)子网主机号为0的ip地址=子网网络号
(5)子网主机号全为1 的ip地址:局域网广播地址(网络号基础上子网掩码取反),不能分配给某个主机
注:一个网络中所能分配的主机号个数是总数-2 除去全0和全1
公网与私网:
公网/外网:互联网
私网/内网:内部私有网络(无法直接与外部通信)
私网内多个主机对外通信,都是用同一个私网对外的ip地址,因此组建私网可以节省大量公网ip地址(组建私网网络:10.*.*.* 172.16.*.*~172.31.*.* 192.168.*.* )
不同私网可以使用相同私网ip地址而不会冲突,因为私网内部主机对外通信时使用的是不同的对外公网ip
组建私网ip地址与公网中ip地址不重复:组建私网ip地址固定,不能被公网中使用
-
路由选择:为每一条数据选择合适路径进行转发
每一个路由器都会拥有一个路由表
路由表:记录与自己相连路由器信息
目标网络号(Destination) 网关地址(Gateway) 子网掩码(Genmask) 网卡(Iface)
以上是关于Linux网络编程(网络层)-ip协议/地址管理/路由选择的主要内容,如果未能解决你的问题,请参考以下文章