IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络基础3 -> 正文阅读

[网络协议]网络基础3

一.IP协议

1.IP协议头格式

在这里插入图片描述
? 4位版本号: 指定IP协议的版本, 对于IPv4来说, 就是4

? 4位头部长度:以4字节为单位,IP头部的最大长度位16字节

? 8位服务类型:3位优先权弃用,4位TOS字段1位保留字段固定为0;4位TOS分别表示:最小延时,最大吞吐 量,最高可靠性,最小成本,四者相互冲突,根据应用场景的不同,只能选择其中的一个。

? 16位总长度: IP数据报整体占多少个字节,IP报文的最大大小为64k,UDP报文的最大大小为64k-28

? 16位分片标识: 标识分片属于哪个报文,用于包序管理

? 3位标志:一位保留,一位禁止分片

? 13位分片偏移:多个数据分片在对端会进行分片重组,分片偏移就是为了表示当前分片在原始报文中的位置 (相对于起始位置的偏移量),因为13位比特位表示的最大数字为8192,无法在64k报文中表示偏移量,因 此分片偏移以8字节为单位

? 8位生存时间(TTL): 数据报到达目的地的最大报文跳数.。一般是64,每次经过一个路由,TTL减1, 若一直减到 0还没到达, 就丢弃报文。 这个字段主要是用来防止出现路由循环

? 8位协议: 当前数据所使用的协议,用来数据分用时选择解析协议

? 16位校验和:校验数据一致性

? 32位源端/目的端IP地址:标识通信两端主机

? 选项字段(不定长, 最多40字节):保存一些路由信息


分片标识和分片偏移字段是为udp提供的,当udp报文大于MTU(链路层限制的最大数据帧大小)时,会在网络层进行数据分片。

udp传输时,如果数据大小大于MTU,但小于64k-28则会在网络层进行分片,把一个大的完整的报文分割成多个小的数据分片,封装IP报头进行传输。udp分片重组时,如果一个分片出问题,则整个报文都会被丢弃。因此分片越多,传输出问题的几率越高,所以使用udp传输数据时,最好在上层分包时就计算好mss大小进行分包,尽量减少分片出错概率。

tcp传输并不会在网络层进行数据分片,因为tcp在三次握手时双方就协商了mss(最大数据段大小,mss是根据mtu计算出的最合适的传输数据大小),网络通信时数据都不会大于mss。

mtu的大小:以太网默认1500


2.地址管理

(1)IP地址组成

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

? 网络号是一个网络的标识,在同一个网络中分配的地址都拥有相同的标识

? 主机号是一个网络中主机的标识,同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号

(2)网段的划分

? 最初根据网络号和主机号,将所有IP地址划分为5类:A类,B类,C类,D类,E类

? A类:最高位固定为0,7位网络号,24位主机号

? 网络号范围0~127,每个网络拥有2^24个主机

? B类:高两位固定为10,14为网络号,16位主机号

? 网络号范围128.0~192.255,每个网络有2^16个主机

? C类:高三位固定为110,21位网络号,8位主机号

? 网络号范围是192.0.0~223.255.255,每个网络有256个主机

? D类:不分网络 ID 和主机 ID,该地址用于多点广播

? E类:不分网络 ID 和主机 ID,该地址用于实验


? 随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址 很快就分配完了, 而A类却浪费了大量地址。针对这种情况提出了新的划分方案, 称为CIDR

? CIDR在早期IP地址的基础上,使用子网掩码进行更细致的网段划分。

? 子网掩码:无符号4字节整数,由连续的二进制1组成

? 子网掩码的用处:

? 1.子网掩码取反可以得到一个网络最大的主机号

? 2.子网掩码和IP地址相与,可以得到网络号

(3)特殊的IP地址

? 0.0.0.0:本机任意网卡IP地址,常用于服务器绑定监听地址

? 255.255.255.255:全网广播地址

? 127.0.0.1:每个主机上的虚拟回环网卡地址,用于进行本地网络回环测试

? 主机号全为0的IP地址:网络号

? 主机号全为1的IP地址:UDP局域网广播

3.公网和私网

? 公网/外网:通常是我们所说的互联网

? 私网/内网:一个组织所建立的内部私有网络(无法直接与外部通信)

? 同一个私网内部的主机可以直接通信,但如果私网内部主机想要和外部进行通信,需要使用这个私网对外的 公网网卡。私网内多个主机对外通信,使用的都是同一私网对外的IP地址,组建私网可以节省大量的公网IP地 址。

? 组建私网的IP地址和公网中的IP地址不能重复,组建私网的IP地址是有固定地址的,这些地址在公网中不会被 使用,如 10.X.X.X , 172.16.X.X~172.31.X.X , 192.168.X.X

4.路由选择

? 在复杂的网络环境中为每一条数据选择合适的路径进行转发

? 为了判定当前IP数据包应该发往何处,因为每个网络中的节点内部都维护一个路由表

? 路由表的格式如下:
在这里插入图片描述
? 将目的IP地址和路由表中每条数据的子网掩码相与,得到目的网络的网络号,和路由表中的目的网络IP地址进 行核对,如果是则由该目的网络IP地址对应的接口(网卡)发出IP数据包,如果不是继续上一步操作。如果都 不匹配,就按缺省路由条目,由缺省路由对应的的网卡发出IP数据包。


二.ARP协议

? ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议。ARP协议建立了主机 IP地址 和 MAC地址 的映射关系,通过ARP协议,可以根据IP地址找到对应的MAC地址。

工作流程

? 源主机在局域网广播ARP请求;

? 相邻设备收到ARP请求后,检测目的IP地址是否和自己的IP地址相同,不同直接丢弃,相同则组织ARP应答, 将自己的MAC地址填充进行回复;

? 通信两端都会将mac-ip的映射关系保存一段时间,一般为20分钟。

? 因为ARP请求时通过广播形式发送的,所以网络中存在一种ARP局域网欺骗攻击。


三.DNS协议

? DNS协议将域名解析得到对应的IP地址

1.域名服务器和域名的划分

(1)域名服务器

? 进行域名和与之相对应的IP地址转换的服务器。

? 层次从高到低分为根域名服务器,顶级域名服务器

(2)域名

? 域名从高到低划分为顶级域名,二级域名,三级域名

? 常见的域名:

? 顶级域名:.com .org .gov .cn .jp .en

? 二级域名:.baidu.com qq.com

? 三级域名:.baike.baidu.com/

2.域名的解析流程

? (1)首先查看浏览器缓存信息;

? (2)缓存信息不存在则查看本地hosts文件;

? (3)请求本地域名服务器,如果本地域名服务器中有对应域名,就将IP地址返回,如果本地域名服务器不能完 成转换工作,就向其上一级域名服务器请求。依此类推,直至根域名服务器。

? 如果根域名服务器无法完成转换工作,有两种解决方案:递归查询和迭代查询;

? 递归查询:一级级域名服务器请求,一级级响应。对根域名服务器造成工作负担。

? 迭代查询:被查询的服务器直接把可查询的服务器地址返回,不知道这个域名,但可以从这个服务器查到。

四.典型面试题

1.浏览器输入url回车后发生了什么?

? 先进行域名解析,域名解析完成后搭建tcp客户端,组织http请求,把请求发送给服务器并等待服务器响应,服 务器收到请求后根据请求进行解析,执行该请求对应的业务处理,处理之后组织一个http响应,将响应发送给浏 览器,浏览器根据content-type对响应进行解析并处理正文。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:51:07  更:2021-07-24 11:53:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 13:04:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计