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


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. invoke和begininvoke 区别

    一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解. 首先说下,invoke和begininvoke的使用有两种情况: 1. c ...

  2. selenium原理解析

    相信很多测试小伙伴儿都听过或者使用过web自动化selenium,那您有没有研究过selenium的原理呢?为什么要使用webdriver.exe,webdriver.exe是干啥用的?seleniu ...

  3. LeetCode 1087. Brace Expansion

    原题链接在这里:https://leetcode.com/problems/brace-expansion/ 题目: A string S represents a list of words. Ea ...

  4. Windows10 Faster R-CNN(GPU版) 配置训练自己的模型

    参考链接 1. 找到合适自己的版本,下载安装Anaconda 点击跳转下载安装 Anaconda,双击下载好的 .exe 文件安装,只勾选第一个把 conda 添加到 PATH 路径.

  5. C# VS 调试 动态加载的 DLL

    原文:https://www.cnblogs.com/DasonKwok/p/10510218.html 在这篇文章的底部,有提供示例的Demo,可以参考一下哦,拿来直接就可以运行. 说明: 编译类库 ...

  6. 洛谷 P2085 最小函数值

    目录 题目 思路 \(Code\) 题目 戳 思路 首先这些函数全部单带递增,因为\(a\),\(b\),\(c\)都是正整数. 我们将全部的函数的\(x\)为\(1\)时的函数值放入优先度列(小根堆 ...

  7. TODO list(咕咕咕。。。

    1. Segment Tree Beats 2. ZR集训补题(还剩10题) 3. 尽可能将各种数据结构写得熟练...(某神仙:要把平衡树写得跟线段树一样熟练) 4. 树相关数据结构和算法(dsu o ...

  8. shell脚本编程基础之case语句

    基础简介 脚本编程分为: 面向过程 选择结构:if语句,单分支.双分支.多分支:case语句 控制结构:顺序结构(默认) 循环结构:for.while.until 面向对象 case语句结构 case ...

  9. 数据结构实验之排序四:寻找大富翁(SDUT 3401)

    #include <stdio.h> #include <stdlib.h> #include <string.h> void Swap(int a[], int ...

  10. 最近在弄ionic3的时候遇到的一些问题(遇到就更新)

    问题一(install提示errno -4048 和管理员权限) npm install npm ERR! code EPERM npm ERR! errno - npm ERR! syscall u ...