网络编程

网络编程

1.软件开发目录

# 1.什么是软件开发架构
软件架构就是程序员在编写软件的时候应该遵循的架构设计,类似于我们之前的三层架构。
# 2.软件开发架构的分类
1.C/S架构:C:client(客户端),server(服务端),客户端就相当于是需要体验服务的客人,服务端呢就相当于是对外提供
服务的门面,就比如我们手机上下载的各种APP其实就是各个厂家的客户端,打开APP使用功能的时候就相当于基于网络去到厂家的门
面让服务员给你提供服务。
2.B/S架构:B:browser(浏览器),S:server(服务器),本质呢还是C/S架构,只不过是浏览器充当了客户端,这样用户就不
需要下载对应的客户端来使用了,就比如淘宝、京东的官网等等。
# 3.两种架构的优缺点
C/S架构:
优势:针对客户端可以高度定制
劣势:需要用户下载才能使用
B/S架构:
优势:无需下载,直接体验
劣势:无法做到高度定制,体验感较差
# 4.当前趋势
目前的趋势更加偏向于B/S架构,就比如我们熟悉的微信小程序、支付宝小程序,只需要下载一个微信或者支付宝,就可以体
验其中很多的服务,而且还有一个优势就是用于引流,获取大量用户及数据,还可以在中间添加广告以谋取利益。

2.网络编程简介

# 1.什么是网络编程
网络编程的研究前提就是基于互联网,网络编程的本质就是基于互联网编写代码。
# 2.学习网络编程的目的
学习完网络编程之后就可以开发C/S架构的软件。
# 3.网络编程发展史
该技术源于美国军方,其实很多先进的科技都是有军事发明的,然后在慢慢普及为民用。该技术的产生是因为军方想要实现
不同计算机之间的数据交互,没有该技术之前只能使用U盘拷贝并携带,及其的不方便,为了跨区域交互数据就发明了网络编程技术。
# 4.早期远程通信
1.座机电话:彼此打电话需要电话线
2.老式大屁股电脑:数据交互需要插网线
3.智能手机:数据交互需要无线网卡
'''电话线、网线、无线网卡都属于物理链接介质,远程通信的前提就是具备一个物理链接介质'''
# 5.互联网协议
不同计算机之间想要实现无障碍数据交互,除了需要有物理链接介质之外,还需要一套公有的标准。这个标准就是互联网协
议,又叫OSI七层协议。

3.OSI七层协议简介

# 1.OSI七层协议简介
应用层
表示层
会话层
传输层
网络层
数据链路层
物理链接层
# 2.七层协议也可以总结为五层
应用层(包括应用层、表示层、会话层)
传输层
网络层
数据链路层
物理链接层

4.OSI七层协议(一)

OSI七层协议的本质就是为了规定数据想要基于网络发送数据必须在计算机上经历的一些固定流程。
# 1.物理链接层
物理链接介质,电话线、网线、无线网卡都属于物理链接介质,用于传递电信号。
# 2.数据链路层
我们都知道数据基于网络传输都是二进制的,那当我们接收到一串二进制数,要怎样进行切分解析呢?这里就用到了数据
链路层:
1.规定二进制数据的分组方式
2.规定了'以太网协议'
但凡能够接入互联网的计算机都必须有一块网卡,每块网卡在出厂的时候都会有一个独一无二的编号,该编号是由1216进制
数组成,前六位是产商编号,后六位是流水编号,这个编号也叫'mac地址',基于mac地址就可以实现计算机之间的数据交互了。

5.网络小知识

# 1.什么是互联网
将计算机彼此链接到一起的介质
# 2.互联网建立的目的
基于互联网做数据交互
# 3.上网的本质
基于网线去访问其他计算机上面的资源

6.专业设施名词

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

7.OSI七层协议(二)

# 1.网络层
1.IP协议:规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线)。
2.IP地址的两个版本:
IPV4:点分十进制,最小:0.0.0.0,最大:255.255.255.255,但是随着社会的进步,计算机的使用越来越普遍,IPV4地址不
够用。
IPV6:十六进制,可以表示出地球上每一粒沙子。
'''IP地址可以唯一标识地球上独一无二的一台接入互联网的计算机'''
3.公网IP于私网IP:
公网IP是可以直接被浏览器访问到的,但是私网IP不可以,我们所有人的电脑默认都是私网IP,公网IP需要花钱购买并且需要
实名认证、备案。
# 2.传输层
1.PORT协议(端口协议):用于标识一台计算机上面正在运行的应用程序,每一个应用程序都有一个专门端口号,端口号
的范围是0~65535,0~1024是系统经常使用的端口号,1024~8000是常见软件端口号。我们以后再写项目的时候推荐使用8000之后
的端口号。那是因为同一时间同一台计算机上面端口号不能冲突,端口号是动态分配的,你打开一个应用程序就会随机分配一个
端口号,等我们关闭之后再打开又会随机分配。
2.IP地址可以唯一标识地球上独一无二的一台接入互联网的计算机,端口号能够标识一台计算机上面的某一个应用程序,
那么两个加起来就能够标识世界上独一无二的一台计算机上的某一个应用程序。
'''我们使用浏览器访问的网址其实就是IP+PORT,其中就是进行了域名解析,将www这种好记的网址解析到真正的IP+PORT地址'''
# 3.应用层
这里完全可以取决程序员自己,HTTP协议、HTTPS协议、FTP协议、自定义协议。

8.TCP与UDP协议

# TCP与UDP协议都属于传输层
# 1.TCP协议
又叫流式协议、可靠协议,基于TCP协议进行数据交互之前需要进行一系列复杂的操作,简称为:三次握手四次挥手。三
次握手建立链接,四次挥手断开链接。
'''洪水攻击:当服务端接收到大量的sny请求处于rcvd状态,控制很多台计算机同一时间去访问服务端,造成服务端瞬间过载瘫痪'''
# 2.UDP协议
又叫丢包协议、不可靠协议,不需要建立双下通道,数据传输速度快,但是可能会丢失,但是我们可以在UDP协议的基
础上做额外的操作来保证数据的安全。

这里是IT小白陆禄绯,欢迎各位大佬的指点!!!


__EOF__

本文作者陆禄绯
本文链接https://www.cnblogs.com/pyqsy/p/16147142.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   陆禄绯  阅读(172)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示