Python开发通信过程强化理解01

wanghu 2019-05-14

欢迎各位小哥哥小姐姐阅读本<小生>的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!!!

您的点赞和关注将是我持续更新的动力呢.^v^

有不懂的问题可以私聊我哦!

手动设置IP地址:

Ubuntu:sudo ifconfig ens33 192.168.33.xxx
​
Windows:网络共享中心-->本地连接-->属性-->Internet协议版本4(TCP/IPv4)-->使用下面的IP地址-->192.168.36.xxx-->子网掩码255.255.255.0

TCP/IP协议四个层:应用层、传输层、网络层、链路层

简单记忆:

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

访问百度过程(重点):

1. 需要知道www.baidu.com的ip,但是不知道,
 2. 需要通过dns来解析出 www.baidu.com对应的ip,但是不知道网关的mac地址
 3. 真的情况是 先发送arp广播,得到默认网关的mac地址,
 4. 然后向dns服务器发送查询 www.baidu.com对应的ip的请求
 5. 假如 dns服务器找到了 www.baidu.com对应的ip,那么就会将这个ip地址返回到 请求方
 6. 到现在为止,咱们的电脑才知道了 www.baidu.com对应的ip
 7. 接下来会通过tcp的3次握手,链接http服务器
 8. 链接成功后,会发送真正的http请求,来得到www.baidu.com的主页内容
 9. http服务器接收到请求后,组织主页的内容数据,将其返回到这个 请求方的电脑上
 10. 电脑接收到http的数据应答后,传递给浏览器,浏览器负责将其进行显示

DNS:

DNS(Domain Name System)域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,

能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)

子网掩码:

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
​
通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的IP地址和子网掩码转换为二进制的形式,
然后进行二进制“与”(AND)计算(全1则得1,不全1则得0),如果得出的结果是相同的,那么这两台计算机就属于同一网段。
​
A类IP地址对应的子网掩码:255.0.0.0
B类IP地址对应的子网掩码:255.255.0.0
C类IP地址对应的子网掩码:255.255.255.0

IP地址:

IP地址(Internet Protocol Address)是一种在Internet上的给主机编址的方式,也称为网络协议地址。

常见的IP地址,分为IPv4与IPv6两大类。

MAC地址:

MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,

用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。

因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。

在一个稳定的网络中,IP地址和MAC地址是成对出现的。
如果一台计算机要和网络中另一外计算机通信,那么要配置这两台计算机的IP地址,
MAC地址是网卡出厂时设定的,这样配置的IP地址就和MAC地址形成了一种对应关系。
在数据通信时,IP地址负责表示计算机的网络层地址,网络层设备(如路由器)根据IP地址来进行操作;
MAC地址负责表示计算机的数据链路层地址,数据链路层设备(如交换机)根据MAC地址来进行操作。
IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成。

IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:

1.对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,
同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。
我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。
而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。
如果一个计算机的网卡坏了,在更换网卡之后,该计算机的MAC地址就变了。
​
2.长度不同。IP地址为32位,MAC地址为48位。
​
3.分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。
​
4.寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 
数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),
而网络层协议使数据可以从一个网络传递到另一个网络上
(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。

网关:

网关实质上是一个网络通向其他网络的IP地址。

比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;

网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。

在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,

即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。

而要实现这两个网络之间的通信,则必须通过网关。

如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

网络B向网络A转发数据包的过程也是如此。所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。

那么这个IP地址是哪台机器的IP地址呢?

网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

集线器:

集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。

它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。

也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。

交换机:

交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。

交换机工作于OSI参考模型的第二层,即数据链路层。
 交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。
 在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。
 因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

路由器:

路由器(Router)是一种多端口设备,它可以连接不同传输速率并运行于各种环境的局域网和广域网,也可以采用不同的协议。

路由器属于OSI模型的第三层--网络层。

指导从一个网段到另一个网段的数据传输,也能指导从一种网络向另一种网络的数据传输。

相关推荐