网络原理TCP/IP(5)

news2024/11/25 14:21:07

文章目录

  • IP协议
  • IP协议报头
  • 地址管理
  • 网段划分
  • 特殊的IP地址
  • 路由选择
  • 以太网
  • 认识MAC地址
  • 对比理解MAC地址和IP地址
  • DNS(域名服务器)

IP协议

IP协议主要完成的工作是两方面:

  1. 地址管理,使用一套地址体系,来描述互联网上每个设备所处的位置
  2. 路由选择,一个数据包如何从网络中的某个地址传输到另一个地址

在这里插入图片描述
• 主机:配有IP地址,但是不进⾏路由控制的设备;
• 路由器:即配有IP地址,⼜能进⾏路由控制;
• 节点:主机和路由器的统称;

IP协议报头

在这里插入图片描述

  1. 4位版本号(version): 指定IP协议的版本,对于IPv4来说,就是4.对于IPv6来说就是6
  2. 4位头部长度(header length): IP头部的⻓度是多少个32bit,也就是length*4的字节数.4bit表⽰最大的数字是15,因此IP头部最⼤⻓度是60字节.
  3. 8位服务类型(Type Of Service): 3位优先权字段(已经弃⽤),实际上只有四位有效,4位TOS字段,和1位保留字段(必须置为0).4位TOS分别表⽰:最⼩延时,最⼤吞吐量,最⾼可靠性,最⼩成本.这四者相互冲突,只能选择⼀个.对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要.
  4. 16位总长度(total length): IP数据报整体占多少个字节.包含了报头和载荷,虽然IP自身有长度限制,但是IP也提供了拆包和组包,当载荷很大时,在IP这一层会自动拆成多个IP数据报,每个IP数据报来携带载荷的一部分
  5. 16位标识(id):唯⼀的标识主机发送的报⽂.如果IP报⽂在数据链路层被分片了,那么每⼀个⽚⾥⾯的这个id都是相同的.用于组包。
  6. 3位标志字段:第⼀位保留(保留的意思是现在不⽤,但是还没想好说不定以后要⽤到).第⼆位置为1表⽰禁⽌分片,这时候如果报⽂长度超过MTU,IP模块就会丢弃报⽂.第三位表⽰"更多分片",如果分⽚了的话,最后⼀个分片置为1,其他是0.类似于⼀个结束标记.
  7. 13位分片偏移(framegament offset):是分片相对于原始IP报⽂开始处的偏移.其实就是在表⽰当前分⽚在原报⽂中处在哪个位置.实际偏移的字节数是这个值*8得到的.因此,除了最后⼀个报⽂之外,其他报⽂的长度必须是8的整数倍(否则报⽂就不连续了).描述了这些包之间的先后顺序
  8. 8位⽣存时间(Time To Live,TTL):数据报到达⽬的地的最⼤报⽂跳数.⼀般是64.每次经过⼀个路由,TTL-=1,⼀直减到0还没到达,那么就丢弃了.这个字段主要是⽤来防止出现路由循环
  9. 8位协议:表示在传输层使用哪个协议
  10. 16位头部校验和:使用CRC进⾏校验,来鉴别头部是否损坏.
  11. 32位源地址和32位⽬标地址:表示了发件人地址和收件人地址

地址管理

IP地址的本质就是一个32位整数(int)
为了方便,就会把IP表示成点分十进制的方式
通过3个点分成4个部分,每个部分1个字节,每个部分的取值都是0-255
IP地址的存在,目的就是为了能够区分网络上不同的设备

如何解决IP地址不够用?

  1. 动态分配IP地址
    全世界的设备,也不是同一时刻一起都在上网,更充分的利用现有的IP地址
  2. NAT机制(网络地址映射)
    先把IP地址分成两大类
    a)私网IP(局域网IP):IP地址是以10.* , 172.16.–172.31. ,192.168.* 这三类地址都是私网IP
    b)公网IP:除了私网IP,其他的都是公网IP

公网上的设备对应的公网IP都必须是唯一的,但是私网上/局域网上的设备使用私网IP只要保证局域网内部的IP不重复即可,不同的局域网之间的Ip允许重复

由于上述的设定,就有一个重要的限制:
1.公网设备访问公网设备没有任何问题,直接访问即可
2.局域网设备访问局域网设备(同一局域网中)也是没有任何问题的
3.局域网设备访问局域网设备(不同局域网中)不允许访问
4.局域网设备访问公网设备就需要对局域网设备的IP进行地址转换
5.公网设备访问局域网设备不允许主动访问
在这里插入图片描述
路由器进行NAT的时候就会把这次通信的相关信息记录下来

在这里插入图片描述
3. IPv6从根本上解决问题
增加IP地址的个数
IPv6使用了16个字节表示IP地址

网段划分

IP地址分为两个部分,网络号和主机号

• 网络号:保证相互连接的两个网段具有不同的标识;
• 主机号:同⼀网段内,主机之间具有相同的网络号,但是必须有不同的主机号;

在这里插入图片描述
• 不同的子网其实就是把⽹络号相同的主机放到⼀起.
• 如果在子网中新增⼀台主机,则这台主机的网络号和这个子网的网络号⼀致,但是主机号必须不能和子网中的其他主机重复.
通过合理设置主机号和⽹络号,就可以保证在相互连接的⽹络中,每台主机的IP地址都不相同.
那么问题来了,⼿动管理⼦⽹内的IP,是⼀个相当⿇烦的事情.
• 有⼀种技术叫做DHCP,能够⾃动的给⼦⽹内新增主机节点分配IP地址,避免了⼿动管理IP的不便.
• ⼀般的路由器都带有DHCP功能.因此路由器也可以看做⼀个DHCP服务器.

过去曾经提出⼀种划分⽹络号和主机号的⽅案,把所有IP地址分为五类,如下图所⽰。
在这里插入图片描述

• 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
随着Internet的⻜速发展,这种划分⽅案的局限性很快显现出来,⼤多数组织都申请B类⽹络地址,导致B类地址很快就分配完了,⽽A类却浪费了⼤量地址;
• 例如,申请了⼀个B类地址,理论上⼀个⼦⽹内能允许6万5千多个主机.A类地址的⼦⽹内的主机数更多.
• 然⽽实际⽹络架设中,不会存在⼀个⼦⽹内有这么多的情况.因此⼤量的IP地址都被浪费掉了. 针对这种情况提出了新的划分⽅案,称为CIDR(Classless InterdomainRouting):
• 引⼊⼀个额外的⼦⽹掩码(subnet mask)来区分⽹络号和主机号;
• ⼦⽹掩码也是⼀个32位的正整数. 通常⽤⼀串 “0” 来结尾;
• 将IP地址和⼦⽹掩码进⾏ “按位与” 操作, 得到的结果就是⽹络号;
• ⽹络号和主机号的划分与这个IP地址是A类、B类还是C类⽆关;
在这里插入图片描述
可见,IP地址与子网掩码做与运算可以得到⽹络号,主机号从全0到全1就是⼦⽹的地址范围;
IP地址和⼦⽹掩码还有⼀种更简洁的表⽰⽅法,例如140.252.20.68/24,表⽰IP地址为140.252.20.68,子网掩码的高24位是1,也就是255.255.255.0

特殊的IP地址

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

路由选择

网络结构太复杂且,每一个路由器都无法掌握全局的信息,只能掌握局部信息,此时路由器规划出来的路线,只能是一个“较优解”路由的过程,是⼀跳⼀跳(Hop by Hop) “问路” 的过程.
所谓 “⼀跳” 就是数据链路层中的⼀个区间. 具体在以太⽹中指从源MAC地址到⽬的MAC地址之间的帧传输区间.
在这里插入图片描述

以太网

• "以太网"不是⼀种具体的网络,而是⼀种技术标准;既包含了数据链路层的内容,也包含了⼀些物理层的内容.例如:规定了⽹络拓扑结构,访问控制⽅式,传输速率等;
• 例如以太⽹中的⽹线必须使⽤双绞线;传输速率有10M,100M,1000M等;
• 以太⽹是当前应⽤最⼴泛的局域⽹技术;和以太⽹并列的还有令牌环⽹,⽆线LAN等;
以太⽹帧格式
以太⽹的帧格式如下所⽰:
在这里插入图片描述
• 源地址和⽬的地址是指网卡的硬件地址(也叫MAC地址), ⻓度是48位,是在⽹卡出⼚时固化的;
• 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
• 帧末尾是CRC校验码。

认识MAC地址

• MAC地址⽤来识别数据链路层中相连的节点;
• ⻓度为48位, 及6个字节. ⼀般⽤16进制数字加上冒号的形式来表⽰(例如: 08:00:27:03:fb:19)
• 在⽹卡出⼚时就确定了, 不能修改. mac地址通常是唯⼀的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些⽹卡⽀持⽤⼾配置mac地址).

对比理解MAC地址和IP地址

• IP地址描述的是路途总体的 起点 和 终点;
• MAC地址描述的是路途上的每⼀个区间的起点和终点;

DNS(域名服务器)

使用IP地址来描述网络设备的位置,域名是一串可读性很好的单词,DNS把域名自动的转化成对应的IP地址
TCP/IP中使⽤IP地址和端⼝号来确定⽹络上的⼀台主机的⼀个程序.但是IP地址不⽅便记忆.
于是⼈们发明了⼀种叫主机名的东西,是⼀个字符串,并且使⽤hosts⽂件来描述主机名和IP地址的关系.
在这里插入图片描述
• DNS是应⽤层协议
• DNS底层使⽤UDP进⾏解析
• 浏览器会缓存DNS结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1433731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

响应式开发如何设置断点,小屏幕界面该如何显示(有动图)

Hi,我是贝格前端工场,本期分享响应式开发,如何设置屏幕断点,pc页面布局到了移动端之后该如何布局的问题,微软也提供了设置屏幕断点的动图演示,非常直观。 一、什么是响应式开发,为何要设置屏幕断…

问题:0xc8前面加(byte) #人工智能#学习方法的原因是因为0xc8大于??????????? 。 #微信#其他#微信

问题:0xc8前面加(byte)的原因是因为0xc8大于??????????? 。 参考答案如图所示

【Linux】信号-下

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 🌎推荐文章:【LeetCode】winter vacation training 目录 👉🏻信号递达,信号未决&#x…

【MySQL】DQL的总结和案例学习

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-VWRkWqFrRMi4uLRa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

华为自动驾驶干不过特斯拉?

文 | AUTO芯球 作者 | 李诞 什么? 华为的智能驾驶方案干不过蔚小理? 特斯拉的智能驾驶[FSD]要甩中国车企几条街? 这华为问界阿维塔刚刚推送“全国都能开”的城区“无图 NCA” 就有黑子来喷了 这是跪久了站不起来了吧 作为玩车14年&…

知识图谱概论

知识图谱 1 学习目标2 知识图谱概念2.1 什么是知识图谱2.2 语义网络2.3 知识图谱的定义 3 知识图谱的架构3.1 知识图谱的逻辑结构3.2 知识图谱的体系架构 4 知识图谱的关键技术4.1 信息抽取4.2 知识融合4.3 知识加工4.4 知识图谱存储4.5 知识更新 5 知识图谱的典型应用5.1 智能…

基于Bazel实现C++/Python编译

最近在学Baidu Apollo需要用到Bazel进行编译,在此记录下Bazel的学过程,以及遇到的一些问题和心得。另外强烈推荐B站赵虚左老师的Cyber RT课程,里面对Bazel的使用有详细的教学。 下面的使用过程都是在Ubuntu 22.04上进行的,首先需要…

Cassandra 命令大全

文章目录 1. 连接与基本操作2. 数据库管理3. 表(Column Family)操作4. 集群管理5. 权限管理6. 其他高级功能7. 条件查询与聚合操作8. 索引管理9. 用户权限和角色管理10. 安全性相关设置11. 一致性级别控制12. 用户定义类型 (UDTs)13. 用户定义函数 (UDFs…

2024年【天津市安全员C证】考试报名及天津市安全员C证免费试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年天津市安全员C证考试报名为正在备考天津市安全员C证操作证的学员准备的理论考试专题,每个月更新的天津市安全员C证免费试题祝您顺利通过天津市安全员C证考试。 1、【多选题】下列说法正确的是&#…

ChatGPT生产力|chat gpt实战介绍

标注说| ⭐ : 使用稳定,推荐 | 😄 : 免费使用 | 🔑 : 需要登陆或密码 | ✈️ : 需waiwang进行访问 | ChatGPT 1PoePoe - Fast, Helpful ...🔑😄🔗2 AItianhuGPT4😄⭐🔗3 PhantoNa…

Vue ElementUI中el-table表格嵌套样式问题

一、表格嵌套要求: 两个表格嵌套,当父表格有children数组时子表格才展示;子表格数据少于父表格展示字段,且对应固定操作列不同; 二、嵌套问题: 当使用el-table的typeexpand实现表格嵌套时,样…

ChatGPT Plus如何升级?信用卡付款失败怎么办?如何使用信用卡升级 ChatGPT Plus?

ChatGPT Plus是OpenAI提供的一种高级服务,它相较于标准版本,提供了更快的响应速度、更强大的功能,并且用户可以优先体验到新推出的功能。 尽管许多用户愿意支付 20 美元的月费来订阅 GPT-4,但在实际支付过程中,特别是…

(2)(2.13) Rockblock Satellite Modem

文章目录 前言 1 支持的MAVLink命令信息 2 设置 3 使用方法 4 数据成本 5 参数 前言 !Note 该功能仅适用于 ArduPilot 4.4 或更高版本,并且要求飞行控制器支持 LUA 脚本(LUA Scripts)。 RockBLOCK 卫星调制解调器可实现与 ArduPilot 飞行器的全球…

【MySQL】- 09 Select Count

【MySQL】- 09 Select Count 1认识COUNT2 COUNT(列名)、COUNT(常量)和COUNT(*)之间的区别3 COUNT(*)的优化 4 COUNT(*)和COUNT(1)5 COUNT(字段)总结 数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删…

[python] 过年燃放烟花

目录 新年祝福语 一、作品展示 二、作品所用资源 三、代码与资源说明 四、代码库 五、完整代码 六、总结 新年祝福语 岁月总是悄然流转,让人感叹时间的飞逝,转眼间又快到了中国传统的新年(龙年)。 回首过去&#xf…

VMWare下载安装(包含Window是和Mac)

VMWare下载安装(包含Window是和Mac) 文章目录 VMWare下载安装(包含Window是和Mac)一、windows下载VMWare①:下载01:网盘下载02:官方下载 ②:安装③:密钥 二、Mac下载VMWa…

2.3作业

作业要求&#xff1a; 程序代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h> typedef struct node //定义链表节点结构体&#xff1a;数据域、指针域 {int data;struct node *next; }*linklist;linklist create_node()//创建新节…

【解刊】顶级IEEE(trans),一审极快!对国人审稿友好,大咖教授投稿之选

计算机类 • 高分快刊 今天带来IEEE旗下计算机领域高分快刊&#xff0c;审稿速度快&#xff0c;期刊质量高&#xff0c;审稿过程友好。如有投稿意向可重点关注&#xff1a; 01 期刊简介 IEEE Transactions on Network Science and Engineering ✅出版社&#xff1a;IEEE ✅I…

缓存组件Caffeine的使用

caffeine是一个高性能的缓存组件&#xff0c;在需要缓存数据&#xff0c;但数据量不算太大&#xff0c;不想引入redis的时候&#xff0c;caffeine就是一个不错的选择。可以把caffeine理解为一个简单的redis。 1、导入依赖 <!-- https://mvnrepository.com/artifact/com.git…

力扣题目训练(7)

2024年1月31日力扣题目训练 2024年1月31日力扣题目训练387. 字符串中的第一个唯一字符389. 找不同401. 二进制手表109. 有序链表转换二叉搜索树114. 二叉树展开为链表52. N 皇后 II 2024年1月31日力扣题目训练 2024年1月31日第七天编程训练&#xff0c;今天主要是进行一些题训…