网络编程理论

网络编程理论

软件开发架构

软件开发架构分为c/s架构和b/s架构两种

c/s架构

c:client   	客户端
s:server   	服务端
    
客户端就是平常下载的各种软件APP
    
服务端需要具备的三大特征
	1.24小时不间断提供服务(24小时监听)
	2.固定的地址(IP地址)
	3.能够服务多个用户(高并发)

img

b/s架构

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

img

网络编程前戏

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

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


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

OSI七层协议

所有的计算机都必须要有这七层

开发层面可以归纳为五层或者四层

img

每层常见物理设备

img

从小往上研究

1.物理连接层
	提供一个物理连接接口(网线口 无线网卡)
2.数据链路层
	1.规定了电信号的分组方式
	2.以太网协议
		规定了计算机必须有一块网卡 并且网卡上面要有一个固定的一串数字
		1216进制数 
			前六位:产商编号
			后六位:流水线号
		上述的数字也称之为计算机的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:8080
"""
能够唯一标识世界上某一台接入互联网的计算机上面的某一个正在运行的应用程序
"""

TCP协议

流式协议 可靠协议

三次握手	建立链接
	重要状态
    	listen监听态:等待对方发请求
        syn_rcvd态:忙于恢复确认建立请求
            # 洪水攻击:服务端在同一时间接收到了大量的要求建立链接的请求
        TCP协议安全在于其拥有反馈机制

四次挥手	断开链接
	不能合并成三次

img

UDP协议

udp协议又称为: 不可靠协议
数据发送没有通道的概念 发送出去了就不管了

tcp和udp的对比

TCP—传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

应用层

都是人为自定义的协议标准 可遵循可不遵循
	eg : HTTP协议 FTP协议 HTTPS协议...

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go&Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值