Python网络编程与并发(1)

1.OSI模型

        1983年,国际标准化组织(International Organization for Standardization,ISO)发布了著名的ISO/IEC7489标准,也就是开放式系统互连参考模型(Open System Interconnection Reference Model,OSI)。这个标准定义了网络的七层框架,试图使计算机在整个世界范围内实现互联。在OSI中,网络体系结构被分为以下7层(从底层到上层):

物理层:此层为上层协议提供了一个传输数据的物理媒介,将数据转换为可以通过物理介质传送的电子信号,即硬件设备如网卡。

数据链路层:定义了数据封装以及传送的方式。此层决定访问网络介质的方式,指定拓扑结构并提供硬件寻址。这一层中数据单位为帧,设备有交换机。

数据链路层包含两个子层:逻辑链路控制层(Logic Link Control,LLC)和介质访问控制层(Media Access Control,MAC)。

LLC用于对节点间的通信链路进行初始化,并防止链路中断,确保系统的可靠通信。而MAC用来检测包含在数据帧中的地址信息,这里的地址使链路地址或物理地址,在设备制造使设置的。

网络层:定义数据的寻址方式和路由方式,负责数据路由并实现网络互联,设备有路由器。

传输层:为数据提供端到端传输,还提供差错控制和流量控制。

会话层:用来为通信双方指定通信方式,包括建立和拆除会话。此层会在数据中插入校验点来实现数据同步。

表示层:为不同的用户提供数据和信息的转换,同时还提供解压缩和解密服务,这一层保证两个主机的信息可以相互理解。

应用层:用户的应用程序与网络之间的接口。

注意:OSI模型并不是一个协议定义,没有被真正实现过,但对现在的网络协议有指导作用。

2.TCP/IP模型

TCP/IP模型出现在OSI模型之前,可以说是互联网最早的通信协议。TCP为传输层的协议,而IP为网络层的协议。通常将TCP/IP模型分为以下四层:

①网络接口层:包含各种硬件设备。

②互联网层:路由关系,包含软件和硬件。

③传输层:与OSI模型中的传输层一样。

④应用层:通过程序设置会话、设置数据格式以及程序与网络的接口。

下图为两种模型的对应关系:

 TCP/IP模型并不关心IP层以下的组成,而是将数据输出成了网络接口层。这样IP层只需将数据发往网络接口层,而不需关心下层的具体操作。

3.协议

        网络协议指通信计算机双方必须共同遵守的一组约定,最终体现为网络上传输的数据包的格式。网络协议的三要素:语法、语义和时序。协议往往分为几层进行定义,这样某一层协议的改变不影响其他层次的协议。

4.网络层IP协议

目前的IP版本有IPv4和IPv6,IPv4地址有十进制和二进制两种表示方法,分别是:

        点分四组十进制,每组范围是[0~255],如:255.255.255.255

        对应二进制:11111111   11111111   11111111   11111111

即IPv4占用四个字节,每个字节8位,共32位。

IPv6地址长度是128位,由8个字段组成,每个字段包含四个16进制数,字段之间用冒号分隔。

具有以下特点:

        1.一个字段中前导0不必书写;

        2.全0的字段可以省略,并用::代替;

        3.IPv6可以兼容IPv4地址,即可以用IPv6格式表示IPv4地址;

        4.IPv6的低32位通常采用点分四组表示法。

5.IP地址结构

IP地址用来识别网络上的设备,因此,IP地址由网络地址和主机地址两部分组成。

网络地址可以用来识别设备所在的网络,网络地址位于IP地址的前段。IP路由的功能是将信息包送至网络地址指明的网络。处在同一网络的设备,具有相同的网络地址。

主机地址位于IP地址的后段,用来识别网络上的设备。

IPv4地址结构:

A类IP地址:由一字节网络地址和三字节主机地址组成,网络地址最高位必须是0。

主机号占用三个字节,因此A类网络中最大主机数是2^{24}-2,即16777214。这里减2是因为全0的主机号表示该IP地址是本主机所连接到单个网络地址,而全1表示所有的即表示该网络上的所有主机。

总共的IP地址空间有2^{32}个,整个A类地址空间共占用2^{31}个即50%。

B类IP地址:两字节网络地址两字节主机地址,前两位(10)固定。

B类地址可指派的网络数2^{14}-1即16383,减1是因为128.0.0.0是不可指派的,B类可指派的最小网络地址是128.1.0.0。

B类地址每一个网络上的最大主机数2^{16}-2,减2是要扣除全0全1。

C类IP地址:三字节网络地址一字节主机地址,最前面三位是110。

C类网络地址192.0.0.0也是不指派的,可指派的C类最小网络地址是192.0.1.0,因此C类可指派的网络数是2^{21}-1,即2097151。

每个C类地址的最大主机数是2^{8}-2,即254。

D类IP地址:并不指向特定的网络,多被应用到广播中。多点广播地址用来寻址一组计算机。

地址范围是224.0.0.1~239.255.255.254。

E类IP地址:保留,仅作实验和开发使用。

6.私有IP

国际规定有一部分IP地址用于局域网使用,也就是属于私网IP,不在公网中使用,它们的范围是:

10.0.0.0~10.255.255.255

172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

IP地址127.0.0.1~127.255.255.255用于回路测试

7.子网掩码

子网掩码实际上表示网络上主机范围,当子网掩码为255.255.255.0时,0的位置是主机范围可变的位置,主机范围是0~255。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长得丑就要多读书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值