Beej’s Guide Network to Programming 系列连载04

本文详细介绍了IP地址的版本4和6,包括IPv4和IPv6的格式与转换,以及子网掩码的概念与作用。同时,文章将IP地址比喻为酒店地址,端口比作房间号码,形象地解释了它们在计算机网络中的应用。

3.IP地址、结构体、数据排列

下面部分决定了,我们需要改变一下。

首先,我们不谈代码!首先我们谈关于IP地址和端口。当然我们要谈关于套接字API怎么存储和维护IP地址和其他数据。

3.1 IP地址,版本4和6

在一个过去的好日子当BenKenobi准备呼叫Obi Wan Kenobi,要通过IPv4的路由系统。格式如:192.0.2.111.

事实上,现在大部分Internet仍然在使用IPv4。

此处省略若干…

由于IPv4的地址限制,我们需要IPv6。(IPv4的地址是32bit的;而IPv6是128bit的)

IPv6格式如:2001:0db8:c9d2:aee5:73e3:934a:a5ae:9551.

IPv4转换为IPv6,比如IPv4地址为192.0.2.33,那么IPv6地址就是:::ffff:192.0.2.33

3.1.1. 掩码

子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。利用子网掩码可以把大的网络划分成子网,也可以把小的网路归并成大的网络。

互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。

  IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。

  子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做AND运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

子网掩码的术语是扩展的网络前缀码不是一个地址,但是可以确定一个网络层地址哪一部分是网络号,哪一部分是主机号,1 的部分代表网络号,掩码为0的部分代表主机号。子网掩码的作用就是获取主机 IP的网络地址信息,用于区别主机通信不同情况,由此选择不同路由。根据子网掩码格式可以发现,子网掩码有:0.0.0.0;255.0.0.0;255.255.0.0;255.255.255.0;255.255.255.255五种,其中A类地址的默认子网掩码为255.0.0.0;B类地址的默认子网掩码为255.255.0.0;C类地址的默认子网掩码为:255.255.255.0。

3.1.2 端口

IP地址就像一条街上的酒店,而端口就像该酒店的房间号码。

(Think of the IP address as the street address of ahotel, and the port number as the room number.)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值