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


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. mysql数据库的concat(),group_concat(),concat_ws()函数,三者之间的比较

    今天在写项目的时候,看到同事使用group_concat()函数 和concat_ws()函数,这两个函数和普通的concat()函数之间到底有什么不同. 我使用的数据库是mysql数据库. GROU ...

  2. 【JZOJ6228】【20190621】ni

    题目 $ n $ 个数 $ E_i $ ,$ F(i) $ 表示对1-i的数任意排列 $ p $ ,初始 $ X=0 $ ,依次执行: \(X \lt E_{p_j} \ , \ X++\) $X \ ...

  3. vue-cli使用笔记

    安装nodejs 安装vue-clinpm install -g vue-cli 使用vue-cli初始化项目vue init webpack my-project 进到目录cd my-project ...

  4. C博客作业01--分支丶顺序结构

    1.本章学习总结 1.1学习内容总结 分支结构 if else-if语句与switch语句都具有选择判断的功能,但是在使用时又有所区别,按题目的不同要求与题意选择不同语句. if else-if语句表 ...

  5. java 中利用反射机制获取和设置实体类的属性值

    摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ...

  6. hdu5438 Ponds[DFS,STL vector二维数组]

    目录 题目地址 题干 代码和解释 参考 题目地址 hdu5438 题干 代码和解释 解答本题时参考了一篇代码较短的博客,比较有意思,使用了STL vector二维数组. 可以结合下面的示例代码理解: ...

  7. 学习opencv(1)

    目录 CV_8UC3 Scalar--颜色赋值 using namespace cv找不到命名空间 waitKey() getTickCount() 引用 CV_8UC3 a) 存放单通道图像中像素: ...

  8. 项目启动tomcat失败的几种可能原因和解决方法

    传送门:https://blog.csdn.net/u010565910/article/details/80411468 总结一下tomcat启动问题,也给自己做个笔记 , 逐渐补充完善. 1.ja ...

  9. hangfire控制台应用程序中添加控制面板

    1.使用nuget 管理包安装 Microsoft.AspNet.WebApi.OwinSelfHost 2.根目录添加新建类 名为:Startup.cs public class Startup { ...

  10. Python10个图像处理工具

    原文地址:https://cloud.tencent.com/developer/article/1498116 译者 | 小韩 来源 | towardsdatascience [磐创AI导读]:本篇 ...