现在,我是蔚蓝的 ;在此岸或彼岸,我都是蔚蓝的。  ---李瑾


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多播,子网掩码的更多相关文章

  1. TCP/IP学习笔记4--网络地址

    "他强由他强,清风拂山岗.他横由他横,明月照大江.世间诸事,敞开心扉,顺其自然." -- 张大千 地址具有两个特性: 1:唯一性 同一个通信网络中的任意两个通信主体不能具有相同的地 ...

  2. tcp/ip学习笔记-TCP

    tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,

  3. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  4. Python3+Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)

    #!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)'''from sel ...

  5. Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法

    Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法 这篇笔记将介绍如何使用Ext.Net GridPanel 中使用Sorter. 默认情况下,Ext.Net GridP ...

  6. SQL反模式学习笔记13 使用索引

    目标:优化性能 改善性能最好的技术就是在数据库中合理地使用索引.  索引也是数据结构,它能使数据库将指定列中的某个值快速定位在相应的行. 反模式:无规划的使用索引 1.不使用索引或索引不足 2.使用了 ...

  7. golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换

    golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...

  8. springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定

    springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...

  9. 并发编程学习笔记(13)----ConcurrentLinkedQueue(非阻塞队列)和BlockingQueue(阻塞队列)原理

    · 在并发编程中,我们有时候会需要使用到线程安全的队列,而在Java中如果我们需要实现队列可以有两种方式,一种是阻塞式队列.另一种是非阻塞式的队列,阻塞式队列采用锁来实现,而非阻塞式队列则是采用cas ...

  10. TCP/IP学习笔记14--IP地址 之 全局地址,私有地址

    只要明天还在,我就不会悲哀,冬雪终会悄悄融化,春雷定将滚滚而来.----<只要明天还在>,汪国真 全局地址,私有地址 , 一种为解决IP地址不足而产生的技术. 起初 ,互联网中的任何一台主 ...

随机推荐

  1. MyBatis框架的insert节点-向数据库中插入数据

    需求:使用mybatis框架中的insert元素节点向数据库中插入数据 UserMapper.xml UserMapper.java 编写测试方法: @Test public void testAdd ...

  2. web自动化测试-模块驱动测试实例和数据驱动测试实例

    一.模块驱动测试实例 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起 from selenium import webdri ...

  3. HBase学习笔记之HBase的安装和配置

    HBase学习笔记之HBase的安装和配置 我是为了调研和验证hbase的bulkload功能,才安装hbase,学习hbase的.为了快速的验证bulkload功能,我安装了一个节点的hadoop集 ...

  4. mysql udf提权

    参考文章:https://blog.csdn.net/q1352483315/article/details/98483668

  5. The 10th Shandong Provincial Collegiate Programming Contest 2019山东省赛游记+解题报告

    比赛结束了几天...这篇博客其实比完就想写了...但是想等补完可做题顺便po上题解... 5.10晚的动车到了济南,没带外套有点凉.酒店还不错. 5.11早上去报道,济南大学好大啊...感觉走了一个世 ...

  6. Stability Analysis of Algorithms

    算法(Algorithm)是指用来操作数据.解决程序问题的一组方法.对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消 ...

  7. L1141

    一,看题 1,位于0格可移动到相邻得1格.位于1格可移动到相邻的0格上. 2,从某一格开始可以移动的格子数.(应该不能重复,否则不久循环了.那就意味着我们可以要标记喽?) 3 二,写题 1,你是一次一 ...

  8. 利用dnslog进行sql注入

    更多内容,欢迎关注微信公众号:信Yang安全,期待与您相遇. 能够利用dnslog进行注入的两个关键点:secure_file_priv 不能为NULL,仅支持 Windows但不支持 Linux s ...

  9. ASP.net MVC C# 当前上下文中不存在名称"viewbag"

    出现的错误如下: 错误 2 当前上下文中不存在名称“model” e:\Stuff\projects\蓝狐软件工作室\src\Lanhu.Admin\Views\Student\Index.cshtm ...

  10. 持续集成学习7 jenkins自动化代码构建

    一.整体功能 1.触发上下游构建 2.我们在触发一个job的时候顺便丢一些参数过去,这些参数有可能是我这次编译过程中产生的一些地址,版本号或动态的一些东西丢到下游作为下游的构建参数 3.不同种类的视图