开发框架、七层协议、TCP和UDP协议

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了开发框架、七层协议、TCP和UDP协议脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、软件开发架构

二、网络编程简介

三、OSI七层协议

四、互联网相关名词——局域网、广域网、交换机、路由器

五、TCP 和UDP协议

一、软件开发架构

# 1、软件开发架构含义
   程序员在编写软件的时候应该遵循的架构设计——相当于之前写的ATM和选课系统所采用的的三层架构
 
# 2、软件开发架构的分类
  2.1、C/S架构
   C:client(客户端)
   S:server(服务端)
"""
  客户端相当于需要体验软件的使用者
  服务端相当于对外服务的服务场所
我们在手机上下载的各种APP就是他们的客户端,打开APP时就相当于我们基于网络到了场所里面
"""

开发框架、七层协议、TCP和UDP协议

2.2 B/S架构
 B: browser(浏览器)
 S: server(服务器)
 """
 本质和c/s架构一样,只是我们在浏览器上当做客户端,没有专属的APP,通过浏览器页面去享受服务
 """
#  两种架构的优缺点
C/S架构:
    优势: 针对客户端可以高度定制
    劣势: 需要用户去下载才能使用
B/S架构:
    优势: 不需要下载,就可以体验
    劣势: 无法做到高度定制, 所以体验感就没那么好
"""
  目前软件开发趋势主要是B/S架构
    eg: 微信小程序
         只需要在微信里面就可以去访问各个小程序服务端
         支付宝小程序
          在支付宝软件里面去访问其他服务小程序
  统一提供接口服务>>>获取大量的用户和数据,使用期间还可以提供广告服务
"""

二、网络编程简介

# 1.网络编程的含义
   网络编程的研究前提就是基于互联网, 所以网络编程就是基于互联网来编写代码
    
# 2.网络编程的学习目的
   可以开发C/S架构的软件,掌握其中原理,使用框架
    
# 3.网络编程发展史
   始于美国军方>>>: 很多先进的技都是有军事发明后转为名用
   实际应用:
     军方想要实现不同计算机之间的数据交互,在当时没有网络编程技术的时候,只能拿U盘拷贝并携带
 
# 4.早起远程通信
 1.座机话 —— 连接时需要电话线 
 2.大屁股电脑 —— 数据交互需要插网线
 3.智能手机 —— 数据交互无限网卡
"""
 电话线、网线、无限网卡 —— 远程通行的前提就是必须具备一个物理链接介质
"""

# 5.互联网协议
 不同计算机之间如果想要实现无障碍交互,除了需要有物理链接介质之外还需要一套公有的标准
    标准 >>>: 互联网协议(OSI七层协议)

三、OSI七层协议简介

"""
  所有的计算机在生产过程过程中必须有相同的部分和相同的功能  ——  应、表、会、传、网、数、物
"""
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理链接层
# 很多人把它们总结成五层
1.应用层(包含了表示层和会话层)
2.传输层
3.网络层
4.数据链路层
5.物理链接层

1、OSI七层协议之物理链接层和数据链路层

OSI的本质其实就是规定了数据想要基于网络发送出去必须要在计算机上经历一些固定的流程
# 物理链接层
    物理链接介质, 传递电信号
    
# 数据链路层
基于物理链接层收到一串二进制数, 那么如何正常解析
    1.规定了二进制数据的分组方式
    2.规定了'以太网协议'
      规定想要接入互联网的计算机都必须有一块网卡
       每块网卡在出厂的时候都会被赋予一个人全世界唯一 的编号,用来记录,这个编号由12位16进制数组成
    前六位是产商编号, 后面六位是流水线号
    我们给这个独一无二的编号称之为 —— "mac地址"
小知识:
   基于Mac地址可以实现计算机之间的数据通信

网络小知识

# 互联网含义
 将计算机彼此链接到一起的介质
    
# 互联网建立的目的
  基于互联网做数据交互
   
# 上网的本质
  基于网线去访问其他计算机上面的资
"我们也可以把计算机称之为服务器或者服务端(专门对外提供服务)"

2、OSI七层协议之网络层

# 网络层
  规定了一个协议 —— IP协议
    规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线,是可变的)
 'IP地址有两个版本————ipv4IPv6'
Ipv4: 十进制
    最小: 0.0.0.0
    最大: 255.255.255.255
# 但是用的IP地址多了,不够用了,所以又创了一个新的
IPV6: 十六进制
    """ IPV6 可以表示出地球上每一粒沙子 """
ip地址可以唯一标识出地球上独一无二的一台接入互联网的计算机
"""
  IP地址分为公网IP和私网IP
   公网可以直接被浏览器访问到,但是私网不可以
   公网需要花钱购买并且需要实名认证并且备案————很多非法的网站都是在国外注册备案
"""

开发框架、七层协议、TCP和UDP协议

3、OSI七层协议之传输层

PORT协议(端口协议)
"""
  一台计算机上面可以运行很多数据的交互软件,比如:微信、视频软件、音乐软件
  为什么他们从内存中获取数据不会错乱,也就是因为端口协议的存在
"""
 端口协议:
    目的就是用于识别一台计算机上面正在运行的应用程序(端口号相当于我们消费的手牌)
    端口号的范围是:0 ~ 65535(也就是一台计算机可以一起运行65535个应用程序)
    0 ~ 1024: 系统经常使用的端口号
    1024 ~ 8000:常用的软件端口号
    所以我们在写项目的时候,推荐使用8000之后的端口
# 注意事项
 1、同一时间同一台计算机上面的端口号不能重合
 2、端口号是动态分配的, 就比如这次打开QQ的端口号是8118,使用完关了,再重新打开的时候可能是8118,也有可能是8888,或者其他数字

"""
  IP地址:用来标识全世界独一无二的一台接入互联网的计算机
  PORT号:用来标识一台计算机上面的某一个应用程序
  
  那么IP + PORT :就是标识全世界独一无二的计算机上面的某一个应用程序
  所以我们在日常中使用的网址就是 IP + PORT
  很多常见的服务端都不需要指定端口 ,只要访问了ip地址内部去会自动映射
"""

4、OSI七层协议之应用层

 程序员自己决定——HTTP协议 HTTPS协议 FTP协议 自定义协议

四、互联网相关名词——局域网、广域网、交换机、路由器

1.交换机

让接入交互机的多态计算机之间的彼此互联

开发框架、七层协议、TCP和UDP协议

2、局域网

由交换机组成的网络称之为局域网(一个区域)

开发框架、七层协议、TCP和UDP协议

3、广播与单播

广播:在交换机中群发
单播: 定向回复消息(记录mac地址)

开发框架、七层协议、TCP和UDP协议

4、路由器

将局域网彼此链接起来并支持数据交互
互联网其实可以看成是由多个局域网链接在一起

五、TCP和UDP协议

1、TCP协议

这两个协议都属于传输层
# TCP协议
  流式协议、可靠协议
  基于TCP协议进行数据交互之前需要做一些系列复杂的操作
>>>:  三次握手四次挥手
 三次握手建立连接: 彼此挖通道,单向的挖
 四次挥手断开连接:彼此切断通道
"""
洪水攻击:服务端接收到了大量的syn请求,处于rcvd状态
控制很多台计算机同一时刻去访问服务端,从而造成服务端瞬间过载瘫痪
"""

三次握手

开发框架、七层协议、TCP和UDP协议

四次挥手

开发框架、七层协议、TCP和UDP协议

2、UDP协议

丢包协议、不可靠协议
不需要建立双下通道,数据的传输的速度快,但是传输的数据可能会发生丢失
QQ使用的就是UDP协议,所以就存在产生数据的丢失情况,但如果在UDP协议的基础上做扩展来保证数据的安全

3、面试题

# TCP协议之所以比UDP协议可靠 ,就是因为有双向通道 对不对?
	不对
  TCP协议之所以比UDP协议可靠 原因在于TCP协议发送消息有反馈机制
  	基于TCP发送的消息会在本地先保存该消息 如果地方确认收到才会删除
    否则在一定的时间内会频繁的多次发送知道确认或者超时为止
  UDP协议发送数据之后会立刻删除内存数据 不会保留

开发框架、七层协议、TCP和UDP协议

脚本宝典总结

以上是脚本宝典为你收集整理的开发框架、七层协议、TCP和UDP协议全部内容,希望文章能够帮你解决开发框架、七层协议、TCP和UDP协议所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。