python全栈(一)网络通信与服务器之网络通信过程

前言

本系列博文《网络通信与服务器》主要内容:udp、tcp、tcp下载文件案例、多任务、http协议、网络通信等 。本篇博文主要讲解网络通信过程。

常见名词解析:
0.1 IP地址
1、一个IP地址唯一标识一个网络接口;
2、IP地址分为IPv4(32位)和IPv6(128位);
3、IP地址分为公网IP地址和内网IP地址,公网IP地址可以直接访问,内网IP只能在内网中访问;
4、一个物理设备有多少网卡,就有几个IP地址;连接两个网络的设备是路由器或者交换机,它至少有两个IP地址,分别接入不同的网络,让不同网络质检连接起来。
5、同一网络中的设备,IP地址前段相同,即网络号相同,通过子网掩码过滤得到网络号:网络号=IP地址&子网掩码;每台设备都需要正确配置IP地址和子网掩码;
6、不同网络中的设备不能直接通信,需要通过路由器或者交换机这样的网络设备间接通信。把这种设备称为网关。
7、网关的作用是连接多个网络,把来自一个网络的数据包转发到另一个网络。这个过程叫路由。

0.2 域名
1、由于IP地址直接记忆困难,通常使用域名访问某个特定的服务。域名解析服务器DNS负责把域名翻译成对应的IP地址,客户端再根据IP地址访问服务器。
2、查看域名对应IP地址的命令: 先输入nslookup ,再输入对应的IP地址。
3、本机域名位localhost,其对应IP地址总是本机地址127.0.0.1.

一、网络通信过程

1、2台电脑的网络

1)2台电脑通信

在这里插入图片描述
网线里传的是数据的信号,而非电流。
说明

  • 如果两台电脑之间通过网线连接是可以直接通信的,但是需要提前设置好ip地址以及网络掩码
  • 并且ip地址需要控制在同一网段内,例如 一台为192.168.1.1另一台为192.168.1.2则可以进行通信

2)网络掩码
子网掩码的作用:最终确定ip中哪些是网络号和主机号。
在这里插入图片描述
实际地址:网卡的地址,网卡的序列号,每一个网卡都有一个mac地址序列号。网卡的唯一的地址。
00-0C-29生产厂家;77-0B-AB:表示生产产家的哪一款网卡,mac地址
示意讲解如下图所示:
在这里插入图片描述

2、 使用集线器组成一个网络

网线里传的是数据的信号,而非电流。
0 表示没电;1 表示有电。
发送----发送的内容变为二进制,然后电信号---------电信号变成二进制最后变成接受的内容–接受。
在这里插入图片描述
说明

  • 当有多态电脑需要组成一个网时,那么可以通过集线器(Hub)将其链接在一起
  • 一般情况下集线器的接口较少
  • 集线器有个缺点,它以广播的方式进行发送任何数据,即如果集线器接收到来自A电脑的数据本来是想转发给B电脑,如果此时它还连接着另外两台电脑C、D,那么它会把这个数据给每个电脑都发送一份,因此会导致网络拥堵

3. 使用交换机组成一个网络

交换机工作原理
 交换机是根据MAC地址转发数据帧的,在交换机中有一张记录着各主机MAC地址与交换机接口对应关系的表,交换机根据MAC地址表将数据帧传输到指定主机上。
  交换机接收到数据帧以后,先记录数据帧中源MAC地址和对应的接口到MAC表中,然后检查自己的MAC表中是否有数据帧中目标MAC地址信息,有则根据MAC地址表中记录的对应接口将数据帧发送出去(单播),无则将会将该数据帧从非接收接口广播出去。
  在这里插入图片描述
(1) 主机A将目标MAC地址为主机B的数据帧发送给交换机。
(2) 交换机接收到数据帧,先把数据帧中源MAC地址和对应的接口记录到MAC地址表中。
(3) 交换机检查自己的MAC地址表中是否有目标MAC地址信息,若有,从表中记录的接口发送出去(单播);若无,则从此数据帧非接收接口发送出去。(广播)
(4) 此时局域网中所有主机都会接收到此数据帧,但只有主机B收到此数据帧时会响应这个广播(因为发送时带着对应的主机B的IP),并回应一个数据帧,此数据帧中包括主机B的MAC地址。
在这里插入图片描述
说明

  1. 克服了集线器以广播发送数据的缺点,当需要广播的时候发送广播,当需要单播的时候又能够以单播的方式进行发送
  2. 它已经替代了之前的集线器
  3. 企业中就是用交换机来完成多态电脑设备的链接成网络的
    在这里插入图片描述
    arp获取mac地址(物理地址)
    真正的发送数据之前,先要知道对方的mac地址。如果没有就先发FF:FF:FF:FF:FF:FF,之后就能确定对方的mac地址。
    实现步骤:
    a、 先看PC1看缓存区有木有mac地址;有就直接发;没有的话,先以广播的方式发一个数据给交换机;
    b、交换机给其他电脑各一份;然后两个电脑都100%在处理,只有一个对应的ip的PC0以单播回应。
    c、PC1第二次就变成单播;
    在这里插入图片描述
    ARP攻击
    在这里插入图片描述

4. 使用路由器连接多个网络

路由器链接多个网络、默认网关
在这里插入图片描述
在这里插入图片描述

路由器的核心点:链接两个或者两个以上不同的网络让他们能够通信。路由器至少有两个网线。能接网线,就意味着有网卡,只要有网卡就有mac地址,那么就有ip地址。路由器就有两个网卡,一个网卡连接一个 网络,那么路由器本身就连接了两个网络,那么就具备了通信的最基本的条件。
本网络内的,不需要任何东西,pc0直接发送给交换机,交互机直接转给对方pc1。
要是你发送的ip与标志的网络号不一致的时候,这时候就需要“默认网关”(具有数据转发能力的设备,一般都是路由器)
在这里插入图片描述

网关:你发这个数据,没这个能力发,你找一个人来发,就ok拉,那么这就网关。收到这个数据,并将这个数据发送出去的能力,就是网关。那么将能有转发数据能力的设备叫网关,那么路由器就是。
代理

通信过程理解:
在这里插入图片描述

发送过程:
在这里插入图片描述
接受过程:改变mac地址,不改变ip。
mac地址只用来确定此时收,此时发的地址。
MAC地址用处:在一个局域网的通信过程中,在一个简单的局域网中,mac地址,它每一级都会变,ip地址是不会变。mac地址只是收发双方的约定。
ip实际上只是在逻辑上标志,mac地址。

小结:
路由器管理交换机,交换机管理电脑。路由器管理网络。
1.路由器的作用连接不同的网络。
2.要想你的电脑把数据发送给不同网络号的电脑时,就需要设置默认网关。
3.发送过程中,mac地址一直在变,ip不变。

5. 通信过程(复杂)

1、浏览器访问服务器的过程

较为复杂的通信过程如:访问 www.itheima.com
示意图:
在这里插入图片描述
说明

  • 在浏览器中输入一个网址时,需要将它先解析出ip地址来
  • 当得到ip地址之后,浏览器以tcp的方式3次握手链接服务器
  • 以tcp的方式发送http协议的请求数据给服务器
  • 服务器tcp的方式回应http协议的应答数据给浏览器

简单过程
1.解析域名
2.向服务器发送tcp的3次握手
3.发送http的请求数据以及等待服务器的应答
4.发送tcp的4次挥手。

复杂过程
先检查PC1是否知道默认网关(1841Routers)的mac地址;不知道,就arp广播获取默认网关的mac。接下组织一个域名数据解析的请求,发给网关,网关接下来发到互联网上,互联上网一层一层的转发,最终到了DNS服务器,DNS服务器将域名解析出来,然后回过头回过去,然后PC1知道了www.dongge.com域名是谁,然后它将ip转发给网关,然后网关转发给互联网,互联网将数据转发给server0服务器。server0服务器与客户端pc1三次握手成功,3次握手成功之后,PC1将请求发过去,server0服务器解析请求,把数据回给客户端PC1,接下来浏览器显示,显示成功之后,浏览器4次挥手,整个过程结束。

路由器自己有自己的协议,路由器发现协议,然后此路由器知道转发给谁。

总结

  • MAC地址:在设备与设备之间数据通信时用来标记收发双方(网卡的序列号)
  • IP地址:在逻辑上标记一台电脑,用来指引数据包的收发方向(相当于电脑的序列号)
  • 网络掩码:用来区分ip地址的网络号和主机号
  • 默认网关:当需要发送的数据包的目的ip不在本网段内时,就会发送给默认的一台电脑,成为网关
  • 集线器:已过时,用来连接多态电脑,缺点:每次收发数据都进行广播,网络会变的拥堵
  • 交换机:集线器的升级版,有学习功能知道需要发送给哪台设备,根据需要进行单播、广播
  • 路由器:连接多个不同的网段,让他们之间可以进行收发数据,每次收到数据后,ip不变,但是MAC地址会变化
  • DNS:用来解析出IP(类似电话簿)
    http服务器:提供浏览器能够访问到的数据
    在这里插入图片描述

2、ip不变、mac地址发生变化

在这里插入图片描述
ip逻辑标志一个一台电脑。
192.168.1.1-------192.168.1.254
源ip:192.168.1.1

域名服务器是由国家管控的,不是个人可以操控的。

二、NAT

(网络地址转换器)
在这里插入图片描述
说明

  1. 当在家里用宽带链接上网时,会把电话线(今天很多地方都是光纤)---->调制解调制(简称猫)------->电脑等设备
  2. 电脑会得到来自电信服务商的一个公网ip地址(切记只有公网ip地址才能上网),此时可以直接上网happy…
  3. 为了能够让多台设备都可以上网,需要将数据进行“分流”
    电话线(今天很多地方都是光纤)---->调制解调制(简称猫)------->路由器------>电脑等设备
  4. 此时路由器的一端有一个公网ip地址,剩下的4个(路由器型号不同个数不同)可以接入电脑等设备 并且 它们的ip是私有ip(例如
    192.168.1.2)
  5. 当一个电脑(192.168.1.2)上网时,先通过DNS协议解析出某个域名对应的ip,然后
    a. 发送数据时,在经过路由器时转换为公网ip以及路由器自己分配的临时端口
    192.168.1.2:6789----->192.168.1.1 路由器 116.226.52.212:6539------->猫---->万维网
    b. 接收数据时,在经过路由器时转换为路由器之前记录的ip以及port万维网------->猫----->116.226.52.212:6539路由器 192.168.1.1 ---->192.168.1.2:6789

三、GIL(全局解释器锁)

在这里插入图片描述
01-单线程死循环

02-2个线程死循环

03-2个进程死循环

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值