欢迎来到十九分快乐的博客

生死看淡,不服就干。

8.网络编程概念

网络编程概念

#1.网络开发的两大架构

"""
(1) c/s 架构 
    c : clicet 客户端
    s : server 服务端
    
(2) b/s 架构
    b : brower 浏览器
    s : server  服务端

未来更趋向于b/s架构:
    1.省去复杂的下载安装环节,节省空间
    2.随时随地,点开即用,快速高效
"""

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

内网IP: 以下地址为预留地址,永远不会被当做公网ip来分配
    192.168.0.0 - 192.168.255.255
    172.16.0.0 - 172.31.255.255
    10.0.0.0 - 10.255.255.255

子网掩码: 
    	255.255.255.0   / 255.255.0.0 /  255.0.0.0
"""

# 3.端口
"""
通过IP + 端口号: 可以找到世界上任何一个主机下的一个应用(软件)
取值范围 : 0~65535
自定义端口时,不要使用知名厂商已经用过的端口号,用8000以上,避免冲突

20 FTP=>文件传输协议(默认数据口)
21 FTP=>文件传输协议(控制)	
22 SSH远程登录协议	 (xshell , putty)
25 SMTP服务器所开放的端口,用于发送邮件	
80 http,用于网页浏览,木马Executor开放此端口
443 https , 基于http,对数据进行加密传输
3306 MySQL开放此端口
"""

# 4. osi 网络七层模型
#一台主机有两个重要标识:
"""
(1)mac地址:标记一台机器的物理地址  (不可变)
(2)ip 地址:#标记一台机器的逻辑地址 (可变)
"""
#ip地址分为两种 ipv4 和 ipv6:
"""
	ipv4地址是一个32位的二进制数
	ipv6地址是一个128位的二进制数
    
    ipv4:  以4段点分十进制表示   X.X.X.X  => 范围
        0.0.0.0 ~ 255.255.255.255 地址范围2^32-1
    ipv6 : 以8段冒分十六进制表示 X:X:X:X:X:X:X:X => 范围
        0:0:0:0:0:0:0:0 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 地址范围2^128-1
    ip地址的最后一位0或者255 两个数字不能用,一般最后一位0表达的是网段,255代表广播地址
"""

# (1).应用层 (应用层,表示层,会话层)
"""
作用: 封装数据
    根据不同的协议,封装不同的数据
    http 超文本传输协议
    https 加密传输的超文本传输协议
    FTP 文件传输协议
    SMTP 邮件传输协议 
"""
# (2).传输层
"""
作用: 封装端口
    指定传输协议(TCP协议或UDP协议)
"""
# (3).网络层
"""
作用: 封装IP
    IPV4 / IPV6
"""
# (4).数据链路层
"""
作用: 封装mac地址:
    指定mac地址(arp协议 / rarp协议)
    arp协议 : IP -> mac  每台主机都有arp缓存表 ,主要作用通过ip找mac的一个协议规则 
        实现方式:通过交换机一次广播,一次单播找到的
    rarp协议: mac ->IP   通过mac地址找IP
"""
# (5).物理层
"""
作用:
    打成数据包,变成二进制字节流,通过网络进行传输
"""

# 5.交换机和路由器
"""
交换机: 转发内网数据
    从下到上拆2层,拆到数据链路层 
路由器: 转发外网数据
    从下到上拆3层,拆到网络层
"""

# 6.arp协议完整过程
"""
	电脑a发现目标主机没有mac,标记全F广播地址,发送arp广播包,给了交换机
	交换机接受arp广播包,从下到上拆2层,拆到数据链路层,发现是全F的广播地址,此时开始广播,给所有连接在这个交换机的设备发一份arp广播包
	每台主机在接收到arp广播包后,开始拆包,如果对应目标IP不归属于自己,该数据包自动舍弃
	路由器得到arp广播包后,从下到上拆包,拆三层到网络层,获取到ip,解析出对应的网段信息;打开路由器信息表找对应的网关(路由器层面)
	把arp广播包发送给对应网关的交换机
	交换机拿到数据之后,从下到上拆2层,发现全F广播地址,在广播.
	数据库得到广播包之后,从下到上进行拆包,发现要找的这个主机,就是自己.
	此时,把对应ip->mac的数据返回给交换机,
	交换机拿到该数据之后,进行单播,返回给数据的原发送方
	原数据发送发拿到数据后,更新自己的arp解析表,方便下次使用
"""

# 7.TCP协议 / UDP协议
# (1) TCP协议
"""
TCP(Transmission Control Protocol)一种面向连接的、可靠的、传输层通信协议(比如:打电话)
优点:可靠,稳定,传输完整稳定,不限制数据大小
缺点:慢,效率低,占用系统资源高,一发一收都需要对方确认
应用:Web浏览器,电子邮件,文件传输,大量数据传输的场景
"""
# (2) UDP协议
"""
UDP(User Datagram Protocol)一种无连接的,不可靠的传输层通信协议(比如:发短信)
优点:速度快,可以多人同时聊天,耗费资源少,不需要建立连接
缺点:不稳定,不能保证每次数据都能接收到(大数据不稳定)
应用:IP电话,实时视频会议,聊天软件,少量数据传输的场景
"""

# (3) TCP 三次握手四次挥手
	# 特点: 先建立连接 , 在发送数据  
# 建立连接 (三次握手)    
"""
	客户端发送一个请求消息,与服务端建立连接
	服务端接受请求,发出响应,回复客户端,与客户端建立连接的一个请求;
	客户端接受服务端的响应消息后,发送回复消息(表达同意)
	到此,客户端和服务端真正的建立了连接,接下来开始发送数据.
"""
# 发送数据 特点:有回执消息
"""
	每发送一个数据,都会对应有回执消息.如果没有回执消息,会把该数据在发送一次(保证数据的稳定,可靠,不丢包)
"""
# 断开连接 (四次挥手)
# 等双方都没有数据要互发,断开连接,所以是4次挥手; 特点:最大等待2msl 大概1分钟;
"""
	客户端向服务端发送一个断开连接的请求(代表客户端已经没有数据发送给服务端)
	服务端接受请求,发出响应 (回复好的)
	等到服务端彻底把数据发送完毕之后,
	服务端向客户端发送一个断开连接的请求,
	客户端接受请求,发出响应 (回复好的)
	双方彻底断开连接.
"""


posted @ 2020-12-24 22:28  十九分快乐  阅读(38)  评论(0编辑  收藏  举报