当前位置: 首页 > news >正文

Linux网络--6、网络层

目录

一、引言

二、IP协议

        2.1基本概念

        2.2协议头格式

三、网段划分

        3.1介绍

        3.2划分方法

(1)五类划分法:

(2)子网掩码

        3.3特殊的IP地址

四、私有与公有

五、路由

如何发送给下一个路由器


一、引言

        前面我们介绍了一个要传输的数据已经从用户在应用层进行封装并到传输层进行序列化等协议封装,已经做好了进行网络转发的准备,那么怎么在网络中传输到目的主机?今天我们来介绍数据包在复杂的⽹络环境中确定⼀个合适的路径--网络层IP

二、IP协议

        2.1基本概念

(1)主机:每个主机都配有IP地址,进行路由控制

(2)路由器:既配有IP地址,又能进行路由控制

(3)节点:主机和路由器的统称

(4)IP地址 = 网络号 + 主机号

        2.2协议头格式

(1)4位版本号:指定IP协议的版本;例如:IPV4就是4

(2)4位首部长度:4位表示的最大数字是15,且单位为4字节,因此IP头部最大长度是60字节

(3)8位服务类型(TOS):包括3位优先权字段(已经弃⽤), 4位TOS字段, 和1位保留字段(必须置为0)4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本(这四者相互冲突只能选择一个

(4)16位总长度:IP数据报整体占多少个字节

(5)16位标识id:唯⼀的标识主机发送的报⽂. 如果IP报⽂在数据链路层被分⽚了, 那么每⼀个⽚⾥⾯的这个id都是相同的

(6)3位标志字段: 第⼀位保留(保留的意思是现在不⽤, 但是还没想好说不定以后要⽤到).

第⼆位置为1 表⽰禁⽌分⽚, 这时候如果报⽂⻓度超过MTU, IP模块就会丢弃报⽂.

第三位表⽰"更多分⽚", 如果分⽚了的话, 最后⼀个分⽚置为0, 其他是1. 类似于⼀个结束标记

(7)13位分片偏移:相对于原始IP报⽂开始处的偏移. 其实就是在表⽰当前分⽚在原报⽂中处在哪个位置.

实际偏移的字节数是这个值除以 8 得到的. 因此, 除了最后⼀个报⽂之外, 其他报⽂的⻓度必须是8的整数倍(否则报⽂就不连续了).

除以8进行储存,在读取时就要进行乘以8,2^13*8 = 2^16 == 16位总长度,刚好包含整个IP数据报

(8)8位生存时间(TTL)数据报到达⽬的地的最⼤报⽂跳数. ⼀般是64. 每次经过⼀个路

由, TTL -= 1, ⼀直减到0还没到达, 那么就丢弃了. 这个字段主要是⽤来防⽌出现路由循环
(9)8位协议 :标识传输层使用的协议类型
(10)16位头部校验和使用CRC进行校验,来鉴别头部是否损坏
(11)32位源地址和目的地址表示发送端和接收端

三、网段划分

        3.1介绍

基础概念中我们提到IP地址分为两个部分:网络号和主机号

⽹络号: 保证相互连接的两个⽹段具有不同的标识;
主机号: 同⼀⽹段内, 主机之间具有相同的⽹络号, 但是必须有不同的主机号;
通过合理设置 主机号和⽹络号, 就可以保证在相互连接的⽹络中, 每台主机的IP地址都不相同.
有⼀种技术叫做DHCP, 能够⾃动的给⼦⽹内新增主机节点分配IP地址, 避免了⼿动管理IP的不便.
⼀般的路由器都带有DHCP功能. 因此路由器也可以看做⼀个DHCP服务器.        

        3.2划分方法

(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
(2)子网掩码

随着网络的发展,第一类划分法就导致分配不均,有些被分配完,而有些却被浪费所以提出了子网掩码的方法

,IP地址与⼦⽹掩码做 按位与 运算可以得到⽹络号, 主机号从全0到全1就是⼦⽹的地址范围;
IP地址和⼦⽹掩码还有⼀种更简洁的表⽰⽅法,例如140.252.20.68/24,表⽰IP地址为140.252.20.68, ⼦⽹掩码的⾼24位是1,也就是255.255.255.0
        3.3特殊的IP地址

将IP地址中的主机地址全部设为0, 就成为了⽹络号, 代表这个局域⽹;
将IP地址中的主机地址全部设为1, 就成为了⼴播地址, ⽤于给同⼀个链路中相互连接的所有主机发送数据包;
127.*的IP地址⽤于本机环回(loop back)测试,通常是127.0.0.1

四、私有与公有

若⼀个组织内部组建局域⽹,IP地址只⽤于局域⽹内的通信,⽽不直接连到Internet上,理论上 使⽤任意的IP地址都可以,但是RFC 1918规定了⽤于组建局域⽹的私有IP地址
10.*,前8位是⽹络号,共16,777,216个地址
172.16.*到172.31.*,前12位是⽹络号,共1,048,576个地址
192.168.*,前16位是⽹络号,共65,536个地址
包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公⽹IP)
⼀个路由器可以配置两个IP地址, ⼀个是WAN⼝IP, ⼀个是LAN⼝IP(⼦⽹IP).
路由器LAN⼝连接的主机, 都从属于当前这个路由器的⼦⽹中.
不同的路由器, ⼦⽹IP其实都是⼀样的(通常都是192.168.1.1). ⼦⽹内的主机IP地址不能重复. 但是⼦⽹之间的IP地址就可以重复了.
每⼀个家⽤路由器, 其实⼜作为运营商路由器的⼦⽹中的⼀个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN⼝IP就是⼀个公⽹IP了.
⼦⽹内的主机需要和外⽹进⾏通信时, 路由器将IP⾸部中的IP地址进⾏替换(替换成WAN⼝IP), 这样逐级替换, 最终数据包中的IP地址成为⼀个公⽹IP. 这种技术称为NAT(Network Address Translation,⽹络地址转换).
如果希望我们⾃⼰实现的服务器程序, 能够在公⽹上被访问到, 就需要把程序部署在⼀台具有外⽹IP的服务器上. 这样的服务器可以在阿⾥云/腾讯云上进⾏购买

五、路由

在复杂的网络结构中找到通往目的地的路线

当IP数据包, 到达路由器时, 路由器会先查看⽬的IP;
路由器决定这个数据包是能直接发送给⽬标主机, 还是需要发送给下⼀个路由器;
依次反复, ⼀直到达⽬标IP地址;
如何发送给下一个路由器

每个路由器都有自己的路由表,每个路由器都有自己的路由表

利用route查看路由表,假如某主机路由表如下:

路由表的Destination是⽬的⽹络地址,Genmask是⼦⽹掩码,Gateway是下⼀跳地址,Iface是发送 接⼝,Flags中的U标志表⽰此条⽬有效(可以禁⽤某些 条⽬),G标志表⽰此条⽬的下⼀跳地址是某个路由器的地址,没有G标志的条⽬表⽰⽬的⽹络地址是与本机接⼝直接相连的⽹络,不必经路由器转发;
每个路由器都有构建子网的功能,从运营商用申请的公网路由器建立公网广域网,然后不断进行网络建设,每个地区到各家各户进行分层,路由器构建子网,分层建立自己的私网
路由表拿到在ip层封装好的数据报时,按照路由表上的子网掩码和数据包中的目的IP进行按位与:
(1)得到的目的网络号和自己的一样就交给该网络号的路由器
(2)若不一样则与下一个子网掩码运算直到找到符合的下一跳
(3)若和路由表上的所有网络号都不符合,则交给默认的缺省路由表进行下一跳的路由分析
http://www.dtcms.com/a/499455.html

相关文章:

  • 福州网站建设哪家专业怎么在自己的网站上推广业务
  • 数据结构——队列的顺序存储结构
  • Android Bootloader启动逻辑深度解析
  • 【机械臂运动学基础】变换矩阵
  • 购物网站开发意义大气广告设计网站源码 企业公司模板 dedecms5.7 企业网站
  • 包资源管理器NPM 使用
  • 在PHP框架里如何进行数据库连接?
  • 网站建设后压缩代码邢台又一地被划定高风险区域
  • 《彻底理解C语言指针全攻略(6)-- qsort、sizeof和strlen》
  • 网站开发的工资是多少wordpress 获取文章图片标题
  • C++ - List
  • 阿里服务器怎么做网站服务器上海网站制作公司介绍
  • MAC mini /绿联NAS 上安装本地AFFiNE
  • h5游戏免费下载:怪物联盟
  • 酒店网站建设方案网站验证码出不来
  • 【JAVA】Java8的 Stream相关学习分析总结
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P06-06 次要属性
  • 基于Vue的保护动物信息管理系统r7zl6b88 (程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 深圳AI搜索优化怎么样
  • 工商网站查询企业信息官网购物平台最新排名
  • 【JUC】核心知识点归纳
  • 网站上海备案大渡口发布
  • 虚幻引擎入门教程:虚幻编辑器的基本操作
  • 建行网站首页登录网上银行百度服务中心官网
  • chrome 浏览器更新
  • 单元测试、系统测试、集成测试知识总结
  • 【C++/Lua联合开发】 (三) C++调用Lua
  • 网站开发与黑客做网站维护需要懂什么
  • C++动态规划——LIS(最长不下降子序列)
  • 计算 CIDR 块包含 C 类地址数量的方法