关于网络

早期没有网络 a.py -> b.py 借助c文件中转
a文件把数据放在c文件中,b文件从c文件取
b文件把数据放在c文件中,a文件从c文件取
构成了早期的一种数据的交互原理 -> socket(套接字)模型
socket(套接字)是收发数据的一个工具

后来有了网络
a文件中的数据,可以通过网络协议,转成10101电信号,进行发送
a文件借助socket发送数据
b文件借助socket接受数据

一.、网络开发的两大架构

1、c/s架构

"""
c/s 架构 : client  server
C/S
    c -> client 客户端
    具体制定是一个软件,像qq,微信,腾讯会议,dnf,wow,跑跑卡丁车,龙与地下城ddo,消消乐,劲舞团,英雄联盟
    s -> server 服务端
    天河三号 百亿亿次超级计算机
"""

2、b/s架构

B/S
    B -> Brower 浏览器
    通过输入网址,直接访问对方服务器,对方服务器响应请求之后
    把对应的数据通过网络返回到浏览器中进行显示
    s -> server 服务端

# b/s 和 c/s 谁代表未来?
# b/s! 
    (1) 省去复杂漫长的下载和安装环节,节省了手机和电脑的硬盘空间
    (2) 因为手机的便捷性,可以随时随地不受限制的使用各式各样的功能,满足日常需求.

二网络概念

1、 ip

ip地址的最后一位0或者255 两个数字不能用,
一般最后一位0表达的是网段,255代表广播地址

2、网段

"""
网段的作用:
    主要用来划分同一区域里的某些机器是否能够互相通信。
    在一个网段里可以不通过因特网,直接对话
判别的依据:
    如果IP地址和子网掩码相与得到的值相同就是同一网段
"""

3、子网掩码:区分网段和主机

案例一

# ip 192.168.30.251
#子网掩码 255.255.255.0
11000000.10101000.00011110.11111011
11111111.11111111.11111111.00000000
11000000.10101000.00011110.00000000  网段
网段:192.168.30.0
#ip 192.168.30.33
#子网掩码 255.255.255.0
11000000.10101000.00011110.00100001
11111111.11111111.11111111.00000000
11000000.10101000.00011110.00000000  网段
网段:192.168.30.0
在一个网段可以互相通信.

案例二

# ip 192.168.30.251
# 子网掩码 255.255.0.0
11000000.10101000.00011110.11111011
11111111.11111111.00000000.00000000
11000000.10101000.00000000.00000000  网段
192.168.0.0
# ip 192.168.35.211
# 子网掩码 255.255.0.0
11000000.10101000.00100011.11010011
11111111.11111111.00000000.00000000
11000000.10101000.00000000.00000000
192.168.0.0
如果两个ip的网段相同就可以一起通讯.
ping+ip 测试是否能够ping通

4、端口

# 某个程序与外界通讯的出口
# 范围: 0~65535 
# ip + 端口 访问这个世界上任何一台电脑里面的任何一个应用;
"""
20 端口:FTP 文件传输协议(默认数据口)
21 端口:FTP 文件传输协议(控制)
22 端口:SSH 远程登录协议
25 端口:SMTP 服务器所开放的端口,用于发送邮件
80 端口:http,用于网页浏览,木马 Executor 开放此端口
443 端口:基于 TLS/SSL 的网页浏览端口,能提供加密和通过安全端口传输的另一种 HTTP
3306 端口:MySQL 开放此端口
"""

三、osi网络七层模型

"""
应用层(应用层,表示层,会话层)
    封装数据:
        根据不同的协议,封装成对应格式的数据消息
        HTTP  [超文本传输协议]
        HTTPS [加密传输的超文本传输协议]
        FTP   [文件传输协议]
        SMTP  [电子邮件传输协议]

传输层:
    封装端口
        指定传输的协议(TCP协议/UDP协议)
    
网络层:
    封装ip
        版本ipv4 ipv6
    
数据链路层:
    封装mac地址
        指定链路层协议arp(ip->mac) / rarp (mac->ip)

物理层:
    打成数据包,变成二进制的字节流,通过网络进行传输
    

交换机:从下到上拆2层,物理层,链路层
路由器:从下到上拆3层,物理层,链路层,网络层
"""
1.物理层(电信号101010单纯的101010没有任何意义,就要分组)

2.数据链路层 (具体在哪台机器)(负责分组,电信号就会变得有意义)

以太网协议(ehternet)

数据包分成两部分:1.报头 封装源MAC 目标MAC 计算机之间就可以通信了,广播方式 2.数据

理论上全世界都可以在一个局域网通信,但是要分多个局域网,那一个局域网一台机器怎么找到另一个局域网的机器

3. 网络层 (标识一个房间) ip协议  标识一个网络,首先要知道对方的ip,根据ip和子网掩码计算得到一个网络地址,算出自己的和对方的,网络地址一样,就可以通信,若不一样,把包送给网关,网关在转发。

4.传输层(tcp udp)(找到哪台机器的哪个应用 端口标识)

5.标识层

6.会话层

7.应用层

应用层一个软件会监听一个端口,端口和ip地址绑定
osi七层都干了什么

四、arp协议

1、交换机

2、局域网过程

3、广域网过程

4、arp协议:通过ip -> mac (arp地址解析协议)

"""通过交换机的一次广播和一次单薄找到对应mac物理地址"""
"""
由于第一次打包由上到下封装信息,包括TCP头部,IP头部,MAC头, 但是在封装MAC头时,只知道源MAC,不知道目标MAC,将目标MAC设置为 FF-FF-FF-FF-FF-FF 广播地址.
通过交换机的一次广播找到目标MAC,在通过一次单播将目标MAC的广播地址替换为真正的MAC地址.
具体如下:
电脑A先发arp的广播包,把mac标记为全F的广播地址,交换机收到arp广播包,从下到上拆2层,到数据链路层得到mac,发现mac是全F的广播地址,重新打包,
交换机开始广播,所有连接这台交换机的设备都会收到arp广播包,开始拆包,如果是全F的广播地址继续向上找,如果ip不对,直接舍弃.
路由器允许从下到上找三层,拆到网络层,得到ip,找到其中的网段,重新打包,发送给对应这个网段的那个接口(网关),发现对应的那个设备是交换机,从下到上拆2层,发现是全F的广播地址,开始发送arp广播包,数据库服务器拆包,
mac为全F的广播地址,mac为全F跳过,发现ip地址就是自己,于是把自己的ip->mac对照表返回给对应的交换机.
"""
原文地址:https://www.cnblogs.com/whc6/p/14292586.html