• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
武纪亨
博客园    首页    新随笔    联系   管理    订阅  订阅
网络并发

内容概要

  • 软件开发架构

  • 网络理论前戏

  • OSI七层协议(五层)

    • 以太网协议、IP协议、port协议、arp协议
    • 交换机、路由器、局域网、广域网
  • TCP协议

    • 三次握手与四次挥手
  • UDP协议

内容详细

c/s架构
	c:client	客户端
	s:server	服务端
"""
将客户端看成是去店里消费的客人
将服务端看成是提供服务的店面
	eg:手机各种app其实就是个大软件的客户端
	
服务端需要具备的三大特征
	1.24小时不间断提供服务(24小时监听)
	2.固定的地址(IP地址)
	3.能够服务多个用户(高并发)
"""


b/s架构
	b:browser	浏览器
	s:server	服务器
"""
浏览器统一充当各个服务端的客户端
本质:bs架构本质上也是cs架构
"""

统一:各大互联网巨头正在做的事情
    eg:
        微信小程序(微信提供开发微信小程序的软件)
        支付宝小程序(各大程序接口)
        
# 总结
	网络编程学习完就可以开发cs架构的软件(简易版本)
    并发编程、前端、数据库、后端框架就可以开发bs架构软件(任何类型的软件)

网络编程前戏

网络编程其实研究的就是程序之间的数据通信

由来:
	基于远程传输数据的技术最早诞生于美国军方(前沿技术通常都是由军事产生 )
    
    
远程数据传输发展史(民用)
	1.有线电话				电话线互联
    2.无线电话				信号发射器
    3.大脑袋电脑				网线
    4.笔记本电脑				网卡
    ...
"""
要想实现远程数据交互的前提是必须要有物理连接介质
"""

除了有物理连接介质之外,还应该有一些能够保证数据彼此无障碍交互的东西(标准)
	OSI七层协议

OSI七层协议

# 所有的计算机都必须要有这七层
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层

# 开发层面可以归纳为五层
应用层
传输层
网络层
数据链路层
物理连接层


"""
从下网上研究

1.物理连接层
	提供一个物理连接接口(网线口 无线网卡)
2.数据链路层
	1.规定了电信号的分组方式
	2.以太网协议
		规定了计算机必须有一块网卡 并且网卡上面要有一个固定的一串数字
		12位16进制数
			前六位:产商编号
			后六位:流水线号
		上述的数字也称之为计算机的mac地址(类似于身份证号)
"""

常见硬件

交换机:能够使接入该机器的所有计算机之间彼此互联
局域网:有交换机组成的网络
互联网:可以简单的开解为是多个局域网之间彼此互联
    
"""
基于mac地址的数据传输
	1.广播风暴
	2.mac地址不能跨局域网传输
"""
路由器:能够连接多个局域网并实现局域网之前的数据传输

网络层

IP协议:规定了接入互联网的计算机都必须有一个IP地址用于唯一标识
    IPV4版本
    	最小	0.0.0.0
        最大	255.255.255.255
	IPV6版本
    	能够表示出地球上每一粒沙子
        
# IP地址能够唯一标识接入互联网的一台独一无二的计算机
公网IP与私网IP
	公网IP需要花钱购买并申请
    私网IP自带的但是无法直接基于互联网访问
"""
arp协议
	将IP地址转换成mac地址(基于网络请求)
"""

传输层

TCP协议	UDP协议	暂且忽略

端口协议
	范围:0~65535
	特性:动态分配
        eg:第一次运行微信 系统随机去一个端口号2022
            然后关闭微信重新启动 系统随机取一个端口号
	端口号基本使用
    	0~1024系统默认需要使用的端口号
        1024~8000常见软件端口号
        以后我们开发的软件最后使用8000之后的端口号
        
# 端口号(port):能够唯一标识一台计算机上面正在运行的一款应用程序
"""
端口号在同一台计算机同一时刻不能重复
"""


总结
	ip+port		127.0.0.1:8000
"""
能够唯一标识世界上某一台接入互联网的计算机上面的某一个正在运行的应用程序
"""

TCP协议

流式协议	可靠协议

三次握手	建立连接
	重要状态
    	listen监听态:等待对方发请求
		syn_rcvd态:忙于回复确认建立请求
            # 洪水攻击:服务端在同一时间接收到了大量的要求建立链接的请求
            
四次挥手	断开链接
	不能合并成三次
    

UDP协议

不可靠协议

数据发送没有铜套的概念 发送出去了就不管了

"""
TCP协议相当于打电话 你一句我一句
UDP协议相当于发短信 发了就完事 管你看不看
"""
早起的QQ使用的就是UDP

应用层

都是认为定义的协议标准	可遵循可不遵循
HTTP协议	FTP协议	...


posted on 2022-01-11 21:34  Henrywuovo  阅读(71)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3