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地址不会冲突

主机号:在一个网路内主机标识

网络号(网段)划分:

  1. A类网络:高1位固定为0,7位网络号,24位主机号  网络号范围:0~127  每个网络拥有2^24个主机
  2. B类网络:高2位固定10,14位网络号,16位主机号  网络号范围:128.0~191.255  每个网络拥有2^16个主机
  3. 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.192192.58.45.0
2192.58.45.64~192.58.45.127255.255.255.192192.58.45.64
3192.58.45.128~192.58.45.191255.255.255.192

192.58.45.128

4192.58.45.192~192.58.45.255255.255.255.192192.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协议/地址管理/路由选择的主要内容,如果未能解决你的问题,请参考以下文章

Linux--网络4(网络层)

Linux--网络4(网络层)

Linux--网络(网络协议,传输及地址管理)

11linux网络管理介绍

Linux 网络基础--网络层+数据链路层

[Linux] Linux网络之网络层协议详解