TCP/IP学习笔记13--IP地址的构成,广播地址,IP多播,子网掩码
现在,我是蔚蓝的 ;在此岸或彼岸,我都是蔚蓝的。 ---李瑾
IP对应的是OSI模型中的网络层,TCP对应的是传输层。每一个参与通信的主机都会有一个IP地址。
IP地址(IPv4地址)含4个字节,每个字节8bits。如果将其转换为整数,2^32 =4 294 967 296,从计算结果来看最多允许43亿台计算机连接到互联网。但是,每台主机可能有多个网卡,每一个网卡都需要设置IP地址,通常一块网卡只设置一个IP,但是也可以配置多个。此外,一台路由器通常会配置两个以上的网卡,因此可以设置两个以上的网卡。从而,让43亿台计算机全部联网是不可能的。
IP地址由网络地址 和 主机地址 两部分构成:
全球互联网由很多个子网络(网段)构成,IP的网络地址部分用于识别一个子网络;每个子网络内都含有很多个主机,对应的是IP地址的主机地址部分。从而,定位一计算机的位置时,先定位子网络,然后在这个子网络中定位出主机。
路由器负责连接不同的子网络,其利用的就是IP地址的网络地址部分进行路由。
IP地址(IPv4地址)含4个字节,32bits,这两部分地址如何划分呢?
有两种划分方式,1)分类,即将IP地址分为不同的类型, 2)子网掩码
现在基本上都使用子网掩码,下面先来看一下第一中分类的方式吧:
总共有四类,A B C D类。
A类IP地址:首位第一个bit以0开头,从第1位到第8位是它的网络标识,后24位是主机地址。
B类IP地址:前2个bit为10,从第1位到第16位是它的网络标识,后16位是主机地址。
C类IP地址:前3个bit为110,从第1位到第24位是它的网络标识,后8位是主机地址。
D类IP地址:前4个bit为1110,从第1位到第32位是它的网络标识,没有主机地址,常被用于多播。
分配IP主机地址时需要注意:
主机地址部分不能全部为0或全部为1,因为主机地址全部为0一般用于表示对应的网络地址 或 IP地址不可获知;而全部为1的地址通常作为广播地址。记得分配时去掉着两种情况哦。
广播地址:
将IP地址中的主机地址部分全部设置为1,就成了广播地址,从而广播地址针对的是一个子网中的全部的主机。
可以把广播分为本地广播和直接广播。
举例子:有一个网络地址192.168.0.0/24(表示前24bit为网络地址),该自网络的广播地址为192.168.1.255,如果该子网络内的一台计算机向192.168.1.255发出一个数据,那么这份数据能被这个自网络内的全部计算机接受到,,这就是本地广播;如果这个计算机向192.168.0.255/24(另一个子网络的广播地址),则该只有该子网络内的全部计算机能够收到这份数据,,这就是直接广播。
注意:直接广播有一定的安全问题,多数情况下,会在路由器上设置为不转发。
IP多播的概念:
多播用于将数据包发送给特定组内的所有计算机,这些计算机可能不在同一个子网内,例如可能是属于三个子网的3个计算机。
在 电视会议系统中比较多用。 在多播之前,人们一直采用广播的方式,那时,广播数据将会发送给所有的终端计算机,然后再由这些计算机的IP之上的层去判断是否有必要接受数据,不需要就丢弃,这回造成网络上存在很多不必要的流量。 况且,路由器一般会被设置为不允许多播数据穿透,因此IP多播被采用了。
子网掩码:
Ref:
《图解TCP/IP》--竹下隆史 4.3章节
TCP/IP学习笔记13--IP地址的构成,广播地址,IP多播,子网掩码的更多相关文章
- TCP/IP学习笔记4--网络地址
"他强由他强,清风拂山岗.他横由他横,明月照大江.世间诸事,敞开心扉,顺其自然." -- 张大千 地址具有两个特性: 1:唯一性 同一个通信网络中的任意两个通信主体不能具有相同的地 ...
- tcp/ip学习笔记-TCP
tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,
- python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...
- Python3+Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)'''from sel ...
- Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法
Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法 这篇笔记将介绍如何使用Ext.Net GridPanel 中使用Sorter. 默认情况下,Ext.Net GridP ...
- SQL反模式学习笔记13 使用索引
目标:优化性能 改善性能最好的技术就是在数据库中合理地使用索引. 索引也是数据结构,它能使数据库将指定列中的某个值快速定位在相应的行. 反模式:无规划的使用索引 1.不使用索引或索引不足 2.使用了 ...
- golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换
golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
- 并发编程学习笔记(13)----ConcurrentLinkedQueue(非阻塞队列)和BlockingQueue(阻塞队列)原理
· 在并发编程中,我们有时候会需要使用到线程安全的队列,而在Java中如果我们需要实现队列可以有两种方式,一种是阻塞式队列.另一种是非阻塞式的队列,阻塞式队列采用锁来实现,而非阻塞式队列则是采用cas ...
- TCP/IP学习笔记14--IP地址 之 全局地址,私有地址
只要明天还在,我就不会悲哀,冬雪终会悄悄融化,春雷定将滚滚而来.----<只要明天还在>,汪国真 全局地址,私有地址 , 一种为解决IP地址不足而产生的技术. 起初 ,互联网中的任何一台主 ...
随机推荐
- invoke和begininvoke 区别
一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解. 首先说下,invoke和begininvoke的使用有两种情况: 1. c ...
- selenium原理解析
相信很多测试小伙伴儿都听过或者使用过web自动化selenium,那您有没有研究过selenium的原理呢?为什么要使用webdriver.exe,webdriver.exe是干啥用的?seleniu ...
- LeetCode 1087. Brace Expansion
原题链接在这里:https://leetcode.com/problems/brace-expansion/ 题目: A string S represents a list of words. Ea ...
- Windows10 Faster R-CNN(GPU版) 配置训练自己的模型
参考链接 1. 找到合适自己的版本,下载安装Anaconda 点击跳转下载安装 Anaconda,双击下载好的 .exe 文件安装,只勾选第一个把 conda 添加到 PATH 路径.
- C# VS 调试 动态加载的 DLL
原文:https://www.cnblogs.com/DasonKwok/p/10510218.html 在这篇文章的底部,有提供示例的Demo,可以参考一下哦,拿来直接就可以运行. 说明: 编译类库 ...
- 洛谷 P2085 最小函数值
目录 题目 思路 \(Code\) 题目 戳 思路 首先这些函数全部单带递增,因为\(a\),\(b\),\(c\)都是正整数. 我们将全部的函数的\(x\)为\(1\)时的函数值放入优先度列(小根堆 ...
- TODO list(咕咕咕。。。
1. Segment Tree Beats 2. ZR集训补题(还剩10题) 3. 尽可能将各种数据结构写得熟练...(某神仙:要把平衡树写得跟线段树一样熟练) 4. 树相关数据结构和算法(dsu o ...
- shell脚本编程基础之case语句
基础简介 脚本编程分为: 面向过程 选择结构:if语句,单分支.双分支.多分支:case语句 控制结构:顺序结构(默认) 循环结构:for.while.until 面向对象 case语句结构 case ...
- 数据结构实验之排序四:寻找大富翁(SDUT 3401)
#include <stdio.h> #include <stdlib.h> #include <string.h> void Swap(int a[], int ...
- 最近在弄ionic3的时候遇到的一些问题(遇到就更新)
问题一(install提示errno -4048 和管理员权限) npm install npm ERR! code EPERM npm ERR! errno - npm ERR! syscall u ...