随笔 - 47  文章 - 14  评论 - 0  阅读 - 5243

互联网

今日内容概要

  • 软件开发架构
  • 网络编程简介
  • OSI七层协议
  • 互联网相关专业名词(局域网、广域网、交换机、路由器)
  • TCP与UDP协议

再次强调:有些天课程内容简单一定要查缺补漏不能松懈!!!

互联网交换的

软件开发架构

软件开发架构:
    程序员在编写软件的时候应该遵循的架构设计
    类似于我们写AMT和选课系统所采用的三层架构
开发架构的分类:
    1. C/S架构
    C:client(客户端)
    S:server(服务端)
    """
    客户端是需要展示在客户面前并提供服务的端口
    服务端相当于是对外提供的店面
          我们手机上下载的各种app其实是各大厂家的客户端
      	打开app使用功能的时候其实就是相当于是基于网络去到厂家的店里面让				 服务员给你提供服务!!!
    """
    2. B/S架构
    B:browser(浏览器)
    S:server(服务器)
        '''
        B/S架构本质上也是C/S架构
        	浏览器来浏览客户端实质 让浏览器充当各个厂家的客户端 用户无需对应下载相应的客户端
        '''
B/S架构的特点:
	优势:无需下载 急速体验
    劣势:无法做到高度定制内容 网页体验不如APP的定制体验效果高
C/S架构的特点:
	优势:针对客户端可以高度定制
    劣势:需要用户下载相对应的客户端
   	"""
   	目前的趋势: B/S架构更加的流行和上限大
   		微信小程序:
   			只需要下载一个微信 通过将微信作为B/S架构的客户端去访问微信上小程序的客户端
   		支付宝应用:
   			支付宝相比于微信更加直观 微信是小程序 而支付宝则就是大号且兼容性更强的服务端 
   			 			只需要下载一个支付宝就可以通过支付宝体验很多服务
 	统一提供接口服务>>>:获取大量用户及数据 中途还可以提供广告服务
   	"""

网络编程简介

网络编程的概念:
	网络编程的研究前提就是基于互联网 网络编程就是基于互联网代码的编写
了解网络编程的目的:
    学习完网络编程之后就是可以开发C/S架构的软件(掌握原理 使用框架)
网络编程发展史:
	该技术源于美国军方:{星球大战计划计划 了解即可}很多先进的技术都是由军事发明后续转化为民用技术
     战争是科学技术发展最快的时代
    互联网的由来:军方想要实现不同计算机之间的数据交互
    	没有网络编程技术的时候只能拿u盘拷贝数据并携带
	为了跨区域交互数据所以发明了网络编程
早期远程通信
		1. 座机电话
    		需要电话线相连 数据交换通过电信号的转换
        2. 巨型计算机时代 
        	数据交互需要通过网线相连
        3. 智能手机时代
        	数据交互需要无线网卡
   """
    电话线 网线 无线网卡
    远程通信的前提是必须具备一个物理链接介质
   """
互联网协议:
	不同的计算机之间要实现无障碍交互
    除了需要物理链接介质之外还需要一套公有的标准
	'''
	标准是:
	互联网协议(OSI七层协议)
	'''

OSI七层协议

'''
所有的计算机在产生过程中必须由相同的部分和相同的功能
	应、表、会、传、网、数、物
'''
	1. 应用层
    2. 表示层
    3. 会话层
    4. 传输层
    5. 网络层
    6. 数据链路层
    7. 物理链接层
上述七层细分可以分为五层
	1. 应用层(三层)
    2. 传输层
    3. 网络层
    4. 数据链路层
    5. 物理链接层

OSI七层协议 零

OSI七层的本质空就是数据相应基于网络发送出去必须在计算机上经历一些固定的流程
1. 物理连接层
	物理链接介质,传递电信号
2. 数据链路层
	"""
	基于物理链接层接收到一串二进制数 如何切分才能正常解析
	"""
3. 规定了二进制数据的分组方式
4. 规定了'以太网协议'
	但凡能够接入互联网的计算机都必须有有一个网卡
    	每块网卡在出厂的时候都会被烧制成一个全世界独一无二的编号
        该编号是由1216进制数组成
        	前六位是产商编号
            后六位是流水线号
     这个独一无二的编号也有一个称呼>>>:'mac地址'(类似于身份证)
    ps:基于mac地址就可以实现计算机之间的数据通信

网络知识补充

1. 什么是互联网:
	将计算机彼此链接到一起的介质
2. 互联网建立的目的:
	基于互联网做数据交互
3. 上网的本质:
	基于网线去访问其他计算机上面的资源
'''
其实我们的计算机也可以称之为是服务器/服务端(专门对外提供服务)
'''

专业设施名词

1. 交换机
	让接入交互机的多台计算机之间彼此互联
2. 局域网
	由交换机组成的网络称之为局域网(一个区域)
3. 广播与单播
	广播:在交互机中群发
    单播:定向回复消息(记录mac地址)
4. 路由器
	将局域网彼此链接起来并支持数据交互	
    互联网其实可以看出是由多个局域网链接在一起
'''
在局域网中可以直接基于MAC地址来实现数据交互
	但是可能会产生广播风暴:交互机中同一时间出现太多广播操作
	MAC只能用于局域网交互数据 不能跨局域网传输
'''

OSI七层协议 初

网络层
	ip协议
    规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线)
    IPV4:点分十进制
    	最小:0.0.0.0
        最大:255.255.255.255
            眼熟吗:自家的IP地址┭┮﹏┭┮
        但是随着社会的进步 计算机的使用数量越来越多 IPV4已经不够用了
    IPV6:
        '''
        IPV6可以表示出地球上每一粒沙
        '''
PS:IP地址可以唯一标识地球上独一无二的一台接入互联网的计算机
"""
IP地址分为公网IP和私网IP
	公网IP是可以直接被浏览器访问到的 但是私网IP是不可以
	我们所有人的电脑默认使用的都是私网IP
	公网IP需要花钱购买并且需要实名认证并备案
		很多非法网站都是在国外注册备案
"""
传输层
	PORT协议(端口协议)
    """
    一台计算机上面可以运行很多数据交互软件 比如微信、QQ
    它们都是从内存中获取数据 为什么不会错乱
    就是因为端口协议的存在
    """
   	用于标识一台计算机上面正在运行的应用程序(端口号类似于手机后面的标号)
   	端口号:0-65535
    0-1024:系统经常使用的端口号
        1004-8000:经常使用软件端口号
        我们以后在写项目的时候推荐使用8000之后的端口
   	1. 同一时间同一台计算机上面的端口号不能冲突
    2. 端口号是动态分配的
    		eg:打开微信随机分配一个没有被使用的端口号8888
        关闭微信重新打开那么随机分配的的还是8888或者其他端口号
"""
IP:用于标识全世界唯一的一台接入互联网的计算机
PORT号:用于标识一台计算机上面的某一个应用程序
IP + PORT:能够标识全世界独一无二的计算机里面的一个应用程序
我们日常生活中使用浏览器访问的各个网址其实就是IP+PORT
www.baidu.com
14.215.1771129:80   不方便用于记忆
IP:port常用于记忆
很多常见的服务端都不需要指定端口 只要访问看IP地址内部就会自动反射
域名解析:
	将好记的地址解析成真正的地址
		www.baidu.com  解析层面
"""
应用层
	这里完全可以取决于程序员自己
    HTT协议 HTTPS协议 FTP协议 自定义协议
           

TCP与UDP协议

协议的共同作用:都属于传输层
1. TCP协议
	流式协议、可靠协议
    基于TCP协议进行数据交互之前需要做一系列复杂的操作>>>:三次握手四次挥手
'''
三次握手建立链接
	eg:彼此挖通道
四次挥手断开链接
	eg:彼此切断通道
洪水攻击:服务端接收到了大量syn请求 处于rcvd状态 这种方式就是多个访问端口冲断服务器的端口的上限照成过载 过载后服务器会瞬间过载导致崩溃
'''
UDP协议
	丢包协议、不可靠协议
   	相比于TCP协议 UDP协议不需要双下通道 数据传输也比TCP快 但是这是牺牲了质量带来的效率 会导致数据丢失
    小贴士:
		早期QQ就使用了UDP协议,UDP数据并不是不可以保存的我们可以通过在UDP协议上做额外的基础之上做很多额外的拓展功能保护数据
'''
TCP协议类似于打电话:你一句我一句 你侬我侬
UDP协议类似于发短信:发了之后不管你看不看 只要发了就行
'''

posted on   等秋叶的七月  阅读(220)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示