网络编程基础

一 网络编程:

​ 1.软件开发架构:

​ c/s架构:

​ Client:客户端

​ Server:服务端

​ 比如:微信客户端、QQ客户端等。。。

​ 优点:

​ -软件的使用稳定

​ -节省网络资源

​ 缺点:

​ -安装麻烦,用户体验差

​ -软件的每一次更新,用户都需要重新下载或更新版本

​ b/s架构:

​ Brower(本质上也是一个客户端):浏览器

​ Server:服务端

​ 比如:在浏览器上输入一个网址

​ 优点:

​ -软件的使用方便

​ -无需跟着软件的更新去下载

​ 缺点:

​ -如果网络不稳定,软件的使用就不稳定

​ 注:比较流行:b/s架构,用户体验高

​ 客户端与服务端:

​ 服务端:24小时不间断的提供服务

​ 客户端:客户想要找服务是,就去访问服务端

二 学习脉络

​ 学习网络编程,并发编程,数据库---->可以开发一套c/s架构的软件

​ 学习前端(html/css/js, web框架(Django)------>可以开发一套b/s架构的软件

三 计算机与计算机之间通讯

​ -语言是人与人之间沟通的介质!

​ -协议是计算机与计算机之间沟通的介质!

四 网络编程

​ -所有最新最牛的技术,都源自于军事:

​ -可以远程实时获取数据,实现远程通信

​ -如何实现远程通信:---->物理连接介质

​ -电话:---->电话线

​ -纯屏电脑(大屁股电脑):-------->网线

​ -笔记本电脑:-------->网线、网卡

​ -电脑与电脑通信:--------->’互联网协议‘

​ 让所有产商的电脑都遵循这套协议,实现所有电脑之间无障碍通信

​ ’互联网协议‘是计算机界的中文、英文。

五 互联网协议(OSI七层协议):

​ -OSI 七层协议:

​ -应用层

​ -会话层

​ -表示层

​ -传输层

​ -网络层

​ -数据链路层

​ -物理层

​ -这里需要关注的是5层:由下自上

​ -应用层

​ -传输层

​ -网络层

​ -数据链路层

​ -物理层

​ 1)物理层:获取到对象计算机的电信号数据

		如:0101010110

​ 产生的问题:无法获取具体数据内容,将电信号数据扔给数据链路层

​ 2)数据链路层:

​ -我要知道数据是什么?

​ -我要知道数据是给谁的?

​ -’’以太网协议‘‘:

​ 1)规定一套分组的方式:

​ 获取电信号真实数据,电信号是一个数据包。

​ head:18个字节

​ -6:发送者

​ -6:接收者

​ -6:数据类型

​ 2)每一台电脑必须要有一个网卡:

​ -每一块网卡都会有一串世界上对一无二的数字:

​ -12位16进制的数字,称之为’‘mac地址’‘:

​ -前6位:产商号

​ -后6位:流水号

​ mac地址作用:

​ 标识全世界上独一无二的计算机

​ ’‘以太网协议’‘的工作方式:

​ -单播:单独与个人通信(其他人收不到)

​ -广播:在整个局域网内传播,实现通信(其他人也可以收到)

​ 缺点:

​ -广播风暴

​ -只能在局域网内实现通信,无法跨局域网实现通信

总结:-
-mac地址:标识全世界上独一无二的计算机

​ 3)网络层:

​ -实现全世界某一台计算之间的通信

​ -ip地址(ip协议):

​ -点分十进制的数字组成

​ -180.101.49.11

​ -最小范围:0.0.0.0

​ -最大范围:255.255.255.255

​ -ip的版本:(ip地址的数量不一样)

​ -IPV4:

​ -IPV6:

-ip的作用****
用于表示全世界某一台计算机所处局域网的位置
总结:
ip地址+mac地址:标识全世界某一个局域网内的某一台计算机

​ 4)传输层:

​ tcp与udp都是基于 ’‘ 端口 ’‘ 实现通信的

​ -TCP协议:

​ -UDP协议:

​ 主要是软件与软件之间进行通信

​ -port端口:

​ 用于标识计算机中某一个独一无二软件

​ 总结:

mac地址 +ip地址 +port 端口:标识的是全世界范围内某一个局域网内某一 台计算机上的某一个软件

​ 5)应用层:

​ -大佬们定制好的一套牛x的协议

​ -http协议

​ -ftp协议

​ -自定义的协议

posted @ 2019-12-04 15:40  蛋蛋的丶夜  阅读(107)  评论(0编辑  收藏  举报