python基础语法15-网络编程理论

网络编程是指在程序中实现两台计算机之间的通信。 Python提供了大量的内置模块和第三方模块用于支持各种网络访问,而且Python语言在网络通信方面的优点特别突出,远远领先其他语言。
一、IP:
1.概念:
IP:互联网协议地址(Internet Protocol Address),互联网之间的通信相当于快递收发,需要知道每个电脑的详细地址才能实现数据的准确收发。
IP地址就是用来标识网络中设备的地址。设备可以是计算机、 路由器等。
2.分类:
2.1.IP地址分为两类IPv4和IPv6:
IPv4:目前使用的ip地址
地址格式:127.0.0.1  由点分十进制组成
目前的全球因特网所采用的协议族是TCP/IP协议。IP是TCP/IP协议中网络层的协议,是TCP/IP协议族的核心协议。目前主要采用的IP协议的版本号是4(简称为IPv4),IPv4的地址位数为32位,也就是最多有2的32次方的网络设备可以联到Internet上。
IPv6:未来使用的ip地址
地址格式:2001:c0a8:82e7:0:0:0:c0e8:82e7  由冒号十六进制组成
IPv6是新一版本的互联网协议,也可以说是新一代互联网的协议,它是为了解决IPv4在实施过程中遇到的各种问题而被提出的,IPv6采用128位地址长度,几乎可以不受限制地提供地址。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
2.2.IP地址根据网络ID的不同分为5类:

 
2.3.IP地址按权限分为公有地址和私有地址:
公有地址:公有地址(Public address) 由 Inter NIC ( Internet Network Information Center互联网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC 提出申请的组织机构。通过它直接访问互联网
私有地址:国际规定有一部分IP地址是用于我们的局域网使用,也就是属于私网IP,不在公网中使用的,它们的范围是
A类私有地址:10.0.0.0~10.255.255.255 
B类私有地址:172.16.0.0~172.31.255.255 
C类私有地址:192.168.0.0~192.168.255.255
3.IP地址查询:
Linux 和 mac OS 使用 ifconfig 这个命令,Windows 使用 ipconfig这个命令,通过ping查看网络连接:
ping www.baidu.com 查看是否能上公网
ping 192.168.1.100 查看是否和该计算机在同一个局域网
ping 127.0.0.1 查看本机网卡是否可用
注意:192.168.1.107是设备在网络中的IP地址,127.0.0.1表示本机地址,是回送地址,用来测试使用。
4.子网和子网掩码:
子网:就是一个网中一个比较低级的网
子网掩码:用来确定一个子网中的IP地址及数量,一个子网节点IP地址与子网掩码相与运算得到该子网下的IP地址。一般的子网掩码为255.255.255.0;通过子网掩码确定两个IP地址是否属于同一个子网;
5.网关:
网络关卡口的简称。链接两个不同的网络,比如联通公司给你家装了宽带(相当于给你家装了一个网关),你家里的所有设备都是在一个局域子网中,这个局域网和互联网之间使用网关进行连接。
6.交换机:
交换机的作用就是分发数据,为设备提供IP地址。交换机直接与设备的网卡连接,数据通过指定的端口发送到指定的设备上,交换机只关心与其联系的设备的mac地址。
7.路由器:
路由器具备WAN口和多个LAN口。它实际上是网关和交换机的结合体。wan口与宽带公司机房相连,LAN口与局域网设备相连。
8.路由:
数据从一台电脑发送到另一台电脑时所走过的路线就叫做路由。
9.子网下的设备访问互联网:
通过网关设备里面的NAT技术,即网络地址转换技术。
10.端口:
同一台设备下有很多的应用程序,但是网卡只有一个,数据通过网卡获得和发送,如何确定接收的数据到底是哪一个程序的呢?发给QQ的数据不可能被微信接收。利用端口可以解决这个问题。
10.1.端口分配:
端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。 端口的表示是一个16位的二进制整数,对应十进制的 0-65535 。 操作系统中一共提供了0~65535 可用端口范围。 按端口号分类:
10.2.公认端口:
从 0 到 1023 ,它们紧密绑定(binding )于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80 端口实际上总是 HTTP 通讯。
10.3.注册端口:
 从1024 到 65535 。它们松散地绑 定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同用于许多其它目的。例如:许多系统处理动态端口从1024 左右开始。
二、网络通信协议:
1.常用的网络协议如下图:


2.OSI网络协议七层模型:
七层模型分别为:应用层, 表示层,会话层,传输层,网络层,数据链路层,物理层;

 
3.TCP/IP协议模型:

 
4.TCP和UDP的区别:主要在于他们传输数据的形式不同
TCP:传输控制协议(Transmission Control Protocol),用于在传输层有必要实现可靠传输的情况
UDP:用户数据报协议(User Data Protocol ),用于那些对高速传输 和实时性有较高要求的通信或广播通信。
这两种传输方式都在实际的网络编程中使用,重要的数据一般使用 TCP方式进行数据传输,而大量的非核心数据则可以通过 UDP 方式 进行传递,在一些程序中甚至结合使用这两种方式进行数据传递。 由于TCP 需要建立专用的虚拟连接以及确认传输是否正确,所以使 用TCP 方式的速度稍微慢一些,而且传输时产生的数据量要比 UDP稍微大一些。
5.TCP连接三次握手:


6.TCP断开四次挥手:


7.数据包与处理流程:
数据包:通信传输中的数据单位;数据包中包括: 包、帧、数据包、段、消息。 
网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。

数据包处理流程:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

春风抚微霞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值