计算机网路编程理论
针对软件开发,目前所有市面上的主流软件,都基本上会使用网络进行通信,传输各种数据,作为软件开发人员,掌握网络编程理论和了解网络编程开发架构是必须的。
软件开发架构
以ATM项目和选课系统项目为例,都采取了三层架构的方式,三层架构中,有一层为用户交互层,这一层可以理解为客户端软件,而接口层和数据处理层则可以理解为服务端软件,这就是对c/s架构进行一个简单的理解。
C/S
-
Client:客户端
例子:手机上的各种app:微信、美团、支付宝
-
Server:服务端
这些软件核心的数据都在它们的服务端中,核心的处理数据的方式也都在服务端的程序中。
特点:可以满足软件高度定制化的要求,而客户端需要让用户下载使用。
B/S
-
Browser:浏览器
例子:浏览器也可以访问网页版的b站、淘宝
-
Server:服务端/器
这里的服务端相应的也要与客户端做一定的适配,并不和C/S的服务端相同
特点:不用下载,只需要网址就能直接访问,但是只能基于浏览器的协议进行编写,会有一些功能上的限制。
计算机网络专业名词
工作方式
- 边缘部分:用户直接使用C/S等方式通信
- 核心部分:为用户服务,包括网络通路、交换机、路由器等等设备
交换机
能够将所有接入交换机的计算机彼此连接起来
广播
主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
单播
首次被查找的计算机回应查找它的计算机,并附带自己的mac地址,一般配合tcp协议使用,是一种点对点的可靠传输方式
广播风暴
广播风暴是一种很严重的网络故障。以预防为主的防治措施应是主要对策。
局域网
局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。
广域网
路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。
广域网就可以理解为局域网用路由器连起来形成的更大的网络。
互联网
由所有的局域网、广域网连接到一起形成的网络
网络编程协议简介
OSI七层协议
七层协议规定了所有的计算机在远程交互时,必须经过相同的处理流程,在制造过程中必须拥有相同的功能硬件。
根据不同的处理流程,网络通信被划分为了以下七层:
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
其中,应用层是最接近用户的一层,它可能是一句话、一张图片,一个网页;物理层是一切通信的基础,其形式是二进制的。
发起通信的一方,会逐步的基于这七层协议不断的给我们想要发送的数据打包,数据已经被各种协议包裹后,最终到物理层,然后传送到其他计算机再自下而上不断的按照对应的协议解包,最终还原数据的呈现方式,发送到接收方。
每一层的打包结果,都是上面所有层处理结果的总和
每一层的解包结果,都已经解析了下面所有层让其更还原原本的数据
五层协议
七层协议中的最上面三层由于很接近用户,也经常被看做一层,统称应用层。
osi之物理层
物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。它为数据端设备建设传输数据的通路,为数据提供传输服务。
osi之数据链路层
-
规定了电信号的分组方式
即发送时将数据处理为一整坨二进制数据,接收时能通过首尾一定位数的数据,确定这种处理方式,再反过来处理,得到原本的数据。
-
以太网协议
规定了计算机在出厂的时候都必须有一块网卡,网卡上有一串数字
该数字相当于是计算机的身份证号码是独一无二的
该数字的特征:12位16进制数据:前6位产商编号 后6位流水线号
该数字也称为:以太网地址/MAC地址
osi之网络层
遵循ip协议,规定所有接入互联网的计算机必须都有一个IP地址。
与mac地址的区别
- mac地址:物理地址,永久不变的一串数字
- ip地址:动态分配,不同的场所IP不同
IP地址特征:
IPV4:点分十进制
0.0.0.0
255.255.255.255
IPV6:能够给地球上每一粒沙分一个IP地址
IP地址可以跨局域网传输
ps:IP地址可以用来标识全世界独一无二的一台计算机
arp协议:
ARP(Address Resolution Protocol,地址解析协议)
用于将IP地址解析为物理地址(MAC地址)
osi之传输层
-
PORT协议
用来标识一台计算机上面的某一个应用程序
范围:0-65535
特征:也是动态分配,但是一些端口会固定分配给一些常见的软件
所以为了避免冲突,我们所写的软件的端口应该放在8000后
0 - 1024 系统默认需要使用的一些端口 1024 - 8000 常见软件的端口号 8000之后,是一些不常见的软件
-
URL:统一资源定位符(网址)
网址本质:
IP:PORT
网址能够定位全世界独一无二的一台计算机上面的某一个应用程序
-
域名解析:我们平常见到的网址都是这种格式的
www.baidu.com
|www.cnblogs.com/Leethon-lizhilog/
实际上,是为了方便阅读,才将
IP:PORT
与字符网址对应起来,我们通过DNS服务就可以将域名转换为IP:PORT
的格式,从而访问到网络那一端的程序。