基础概念——理解IP地址和域名

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

从程序员角度,可以把因特网看做是世界范围内的主机集合:

1)主机集合被映射为一组32位的IP地址

2)这个IP地址被映射为一组称为因特网域名标识符

3)因特网主机上的进程能够通过连接和任何其他因特网主机上的进程通信。

IP地址

  IP地址是一个32位无符号整数

  存放在一个结构中;

struct in_addr {

  unsigned int s_addr;

} ;

为什么要用结构来存放标量IP地址?

  把一个标量存放在一个结构中,是套接字接口早期实现的不幸产物。为IP地址定义一个标量类型应该更有意义。但现在更改已经太迟了,因为有大量的应用是基于此的了。

因为因特网主机可以有不同的主机字节顺序,TCP/IP为任意整数数据项定义了统一的网络字节顺序,即大端字节顺序。

即使主机字节顺序是小端法。Unix提供了一些函数在网络和主机字节顺序之间实现转换。

32位也就是4个字节

IP地址通常是用点分十进制方式表示的;这种表示方式更方便人们阅读

每个字节由它的十进制数表示,并且用句点和其他字节分开。

例如:128.2.194.242就是地址0x8002c2f2的点分十进制表示。

在Linux上,能够使用HOSTNAME命令来确定你的主机的点分十进制地址。

因特网程序使用inet_aton和inet_ntoa 函数来实现IP地址的点分十进制串之间的转换。

因特网域名

因特网客户端和服务器相互通信使用的是IP地址。但是对于人们而言,这个大整数实在是难以记住。

于是因特网定义了一组更加人性化的域名(domain name),以及一种将域名映射到IP地址的机制。

域名是一串用句点分隔的单词(字母、数字和破折号),例如:

kittyhawk.cmcl.cs.cmu.edu

域名集合形成了一个层次结构,每个域名编码了它在这个层次中的位置。

一级域名:com、edu、gov、org、net;这是由非盈利组织ICANN定义的。

下一层的二级域名:是有ICANN的各个授权代理按照先到先服务的基础分配的。一旦一个组织得到一个二级域名,那么它就可以在这个子域中创建任何新的域名了。

因特网还定义了域名集合与IP地址集合之间的映射。

直到1988年这个映射都是通过一个叫HOSTS.TXT的文本文件来手工维护的。

从那以后,这个映射是由通过分布世界范围内的数据库(DNS 域名系统)来维护的。

DNS数据库由上百万条如下图的条目,称为主机条目结构组成的,其中每条定义了一组域名和一组IP地址之间的映射。

从数学意义上来说,你可以认为每条主机条目就是一个域名和IP地址的等价类。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“基础概念——理解IP地址和域名” 的相关文章

各种基本数据类型的长度

#include<iostream> #include<map> using namespace std; class MapSort{ public: bool operator()(int size1,int size2){ return siz...

认识ffmpeg编译、以及参数解释

文章目录 源码编译参数环境目录链接库编译速度、程序大小可执行程序属性编码器环境工具不同平台使用不同工具协议 编译脚本下文简称为`configure`完整静态编译下载-编译脚本(Android) 学习文章 : https://ffmpeg.xianwai...

NIO学习demo

package io_test; import java.io.File; import java.io.FileInputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel;...

最新可用的谷歌google镜像/Sci-Hub可用网址/Github镜像等等各种可用镜像网址总结

最新可用的谷歌google镜像/Sci-Hub可用网址/Github镜像等等各种可用镜像网址总结。 一、谷歌学术镜像 网址一http://scholar.scqylaw.com/ (附 sci-hub) 网址二https://ac.scmor.com/ (附 sci-hub比较全面) 网址三htt...

Python关于字典的操作方法有哪些 - 编程语言

这篇文章主要讲解了“Python关于字典的操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python关于字典的操作方法有哪些”吧! 初始化# 最常用这种 my_obj...

HDU 1072Nightmare(BFS+剪枝)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1072这题好不容易调试成功了(因为各种手残。。),结果提交上去是TLE。。于是自己想剪枝方法,但是没想出来。。于是睡了个觉。。醒来还是没想出来。。。而且毫无剪枝思路。。。于是找了找网上的题解,才明白是怎样...