| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络 - IP协议 -> 正文阅读 |
|
[网络协议]计算机网络 - IP协议 |
IP协议是网络层中最重要的协议, 它主要完成两方面的工作:
IP协议数据报:
IP协议分包: 那么, 对一个数据包进行拆分后, 接收方如何能区分哪些小的数据包能拼接成一个完整的IP数据包呢? ??我们注意到, 每个拆分后的数据包都有一个IP报头, 上面有一个字段叫做16位标识, 同一个数据包分包后产生的小的数据包的16位标识是相同的, 这样, 接收方就能通过相同的16位标识来找到这些数据包并进行组包, 并且通过13位片偏移量来描述这些被拆分的包的顺序, 片偏移量越小, 包的位置越前. 3位标志位中仅有一位有效, 这一位为0, 表示这个包后面还有别的包, 为1表示这个包是最后一个包.
为什么要为IP数据包设置TTL呢? ??有些IP数据包中的IP地址可能有误, 可能永远无法到达这个IP地址, 这样的包不能在网络传输中无休止地转发, 无休止地转发会占用大量的硬件资源, 因此, 如果数据包的TTL减到0, 代表这个数据包的转发次数过多, IP地址可能有误, 就会丢弃这个数据包.
IP地址: ??IP地址是一个32位的二进制整数, 通过"点分十进制"的方式将IP地址分为了4个8位2进制数, 这4个数之间用"."连接, 例如, 152.168.0.1, 注意, 一个8位二进制的最大值为255, 因此, IP地址中这四个数的大小不能超过255. ??IP可以分为两个部分, 网络号+主机号, 网络号描述了当前的网段信息, 也就是局域网的标识, 主机号区分了局域网内部的主机. 注意:在同一个局域网内部, 网络号是相同的, 但主机号不能相同, 同一个路由器连接的不同局域网的网络号不同. 那么到底多少位是网络号, 多少位是主机号? ??这个是不固定的, 为了表示多少个bit位是网络号, 我们引入一个概念, “子网掩码”. 子网掩码也是一个32位的二进制数, 子网掩码的左侧均为1, 右侧均为0, 不会出现1在0的右边这种情况, 左边的所有1表示这些位是网络号, 右边的所有0表示这些位是主机号. 一些特殊的IP地址:
当前的IPv4协议使用的IP地址是32位整数, 32位整数能表示的范围<43亿, 如果每个设备都分配一个IP, 那32位IP地址明显不够用了, 因此, 无法实现让每台设备都有自己单独的IP, 那么, 如何区分网络中这么多的设备呢?
什么叫内网IP和外网IP? ??同一内网中的设备可以共用同一个外网IP, 就好比某个学校的学生取快递时, 收货地址都是这个学校, 快递小哥只需要将这些快递放在学校的快递收发室即可, 不需要针对到每个人. 注意:对于一个外网IP, 可以在互联网中的任意位置访问到, 对于一个内网IP, 只能通过局域网内部访问, 也就是两台设备之间不能跨局域网直接进行通信.
??IPv6中使用了一个更长的字段来表示IP地址, 长度为16个字节, 也就是128位, 极大地扩大了IP地址的范围, 但由于IPv4和IPv6互不兼容, 而现在大量的网络设备都使用的是IPv4, 因此, 虽然IPv6的普及程度很广, 但也有很大一部分用户使用IPv4+NAT机制. |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 2:28:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |