Linux网络 网络层

目录

[一. 基本概念](#一. 基本概念)

[二. 协议头格式](#二. 协议头格式)

[三. IP的相关话题](#三. IP的相关话题)

[1. 网段划分](#1. 网段划分)

[2. 特殊的IP地址](#2. 特殊的IP地址)

[3. IP地址数量不足](#3. IP地址数量不足)

4.私有IP地址和公网IP地址


一. 基本概念

主机: 配有IP地址, 也要进⾏路由控制的设备;

路由器: 即配有IP地址, ⼜能进⾏路由控制;

节点: 主机和路由器的统称;

IP=目标网络 +目标主机

路由的本质其实在不同的子网进行信息的传递

二. 协议头格式

第二行的内容以后说和分片和组装有关

4位版本:IPV6 或者IPV4

4位头部⻓度::IP头部的⻓度是多少个32bit, 也就是 length 4 的字节数。4bit表⽰最⼤的数字是15,因此IP头部最⼤⻓度是60字节。和TCP的一样。

16位总⻓度: IP数据报整体占多少个字节。

8位服务类型:3位优先权字段(已经弃⽤), 4位TOS字段, 和1位保留字段(必须置 为0)。4位TOS分别表⽰:最⼩延时,最⼤吞吐量,最⾼可靠性,最⼩成本。因为从源IP到目的IP会有很多条路,有的路延迟比较低,有的路丢包的概率小,选择一条路去传递,这四者相互冲突,只能选择 ⼀个。对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要。

8位⽣存时间(Time To Live, TTL):全球的网络的线路是很复杂的,报文在网络传输的过程中,会不断的衰减,此时可以用集线器来放大信号,同时也有可能会存在环路问题,导致报文一直在一个环路里面来回的传递,所以有了TTL。TTL:数据报到达⽬的地的最⼤报⽂跳数. ⼀般是64. 每次经过⼀个路由, TTL -= 1, ⼀直减到0还没到达, 那么就丢弃了,这个字段主要是⽤来防⽌出现路由循环。

8位协议:表⽰上层协议的类型,每一个协议都是有编号的。

16位头部校验和:使⽤CRC进⾏校验, 来鉴别头部是否损坏。

32位源地址和32位⽬标地址:表⽰发送端和接收端。

选项字段(不定⻓, 最多40字节): 略

三. IP的相关话题

1. 网段划分

在这个例子当中,这样去找是很高效的,但是这样做的为什么高效,本质就是进行了划分,不同的学院有不同的编号。

由于IP=目标网络 +目标主机,其中⽹络号是保证相互连接的两个⽹段具有不同的标识,主机号是同⼀⽹段内,主机之间具有相同的⽹络号,但是必须有不同的主机号。IP地址是从路由器里面分配的,分配的是内网IP,路由器内部有一个DHCP,能够⾃动的给⼦⽹内新增主机节点分配IP地址, 避免了⼿动管理IP的不便。

网段划分的方式:

刚开始采用如下图的分类方式,分为五类,随着Internet的⻜速发展,这种划分⽅案的局限性很快显现出来,这样的划分粒度太粗了,⼤多数组织都申请B类⽹络地址,导致B类地址很快就分配完了,⽽A类却浪费了⼤量地址。

所以有了新的划分⽅案,称为CIDR:

怎么理解呢,假如我申请了一个A类网络,但是我又没有那么多的主机,所以我设置一个子网掩码,这个子网掩码的前12位1,然后和这个A类网络进行按位与操作,也就是说我把这个A类网络的前12位当成一个网络号,后面的当成主机号,其实就是对A类网络进行又进一步的划分,这样提高了A类网络的利用率。

一个例子:

IP地址为140.252.20.68 最后的网络号为 140.252.20.64 可以分配15台主机,需要注意的是主机号为全0的叫做主机地址,为全1叫广播地址。

2. 特殊的IP地址

将IP地址中的主机地址全部设为0, 就成为了⽹络号, 代表这个局域⽹;

将IP地址中的主机地址全部设为1, 就成为了⼴播地址, ⽤于给同⼀个链路中相互连接的所有主机发 送数据包;

127.*的IP地址⽤于本机环回(loop back)测试,通常是127.0.0.1

3. IP地址数量不足
4. 私有IP地址和公网IP地址

由于IP分为私有IP和公网IP,所以网络宏观划分也分为公网和子网/局域网。怎么理解公网和子网还有公有IP和私有IP呢?

说一个场景在家里面使用Wi-Fi的情况下,我们查我们所用的IP地址的时候通常为私有IP,因为我们的家用路由器组建了一个局域网,当我们链接Wi-Fi的时候为我们分配一个私网IP,此时我们家的这个范围其实就相当于一个子网,但是我们要如何访问这个局域网外部的数据呢,通过路由器,虽然我们的各种设备是链接在这个局域网内部的,但是路由器是链接公网的或者可以说是链接外部的网的(路由器通常有两个IP地址,一个在这个局域网内部的iP地址(子网IP),一个是链接外部的IP地址,通过链接的是运营商的路由器(WAN口IP),我们把请求通过路由器传递出去获取数据。同时运营商的路由器的子网IP可能又是一个子网内部的IP地址,WAN口IP可能又是一个更大的子网内部的IP,以此的类推下去,到最后的一个运营商的WAN口IP链接的是公网IP。

家用路由器的本质其实是运营商路由器搭建子网的其中一个节点。

不同的子网当时可以有相同的IP地址。

我们在一个局域网内部怎么把请求传递到公网,然后数据又是怎么返回回来的呢?细节是什么?

相关推荐
静若繁花_jingjing4 小时前
面试_项目问题_RPC调用异常
网络·网络协议·rpc
从零开始的ops生活4 小时前
【Day 80】Linux-NAS 和 SAN 存储
linux·运维·php
せいしゅん青春之我5 小时前
[JavaEE初阶] 防止网络传输中的中间人入侵---证书
服务器·网络·网络协议·java-ee
Wang's Blog5 小时前
Linux小课堂: 输入重定向与管道操作详解
linux·运维·服务器
RTC老炮6 小时前
webrtc弱网-ReceiveSideCongestionController类源码分析及算法原理
网络·算法·webrtc
迎風吹頭髮6 小时前
Linux内核架构浅谈49-Linux per-CPU页面缓存:热页与冷页的管理与调度优化
linux·缓存·架构
jason.zeng@15022076 小时前
centos中安装redis
linux·redis·centos
w23617346017 小时前
Linux 服务器安全巡检与加固:从命令到实操(CentOS/Ubuntu 通用)
linux·服务器·安全·安全加固·安全巡检
xiaogg36787 小时前
阿里云k8s1.33部署yaml和dockerfile配置文件
java·linux·kubernetes