25、网络编程

一、互联网通信协议

我们学习网络编程的目的是为了开发C/S架构或者B/S架构的软件

Client-------Server
# C/S架构,由客户端和服务端组成
数据放在服务端和客户端的利与弊
  • 服务端统一处理有更好的安全性和稳定性而且升级比较容易,不过服务器负担就增加了。
  • 客户端将负担分配到每个用户,从而可以节约服务器资源,安全性和稳定性可能会有一定的问题,但是升级比较麻烦,每个安装的客户端程序都需要升级,另外为了节省网络资源,通过网络传输的数据应该尽量减少!
Browser-------WEB Server-------Database Server
# B/S架构,
  • 统一客户端即默认安装用户电脑中的浏览器,访问同种类的网站,具体业务的处理根据相应协议和标准提供通用的服务器程序,在不同的服务器处理。

二、OSI七层协议

我们知道,一个完整的计算机系统是由硬件、操作系统、软件三者组成,一台计算机系统就可以自己跟自己玩了,如果你想和别人一起玩,那就需要用到互联网了。

什么是互联网,互联网的核心技术由一堆协议组成,这个协议叫做OSI协议,按照功能不同,分为七层,但实际上七层只是一个概念,实际上并不存在,所以有人将它划成七层,还有人将它划成五层、四层

1、物理层

物理传输,用物理设备(网线,光纤)连接,传输的是电信号,发送高低电压,高电压对应数字1,低电压对应数字0

2、数据链路层

单纯的电信号0和1没有任何意义,而数据链路层的功能介绍定义了电信号的分组方式,规定了电信号多少位一组,每组是什么意思

2.1、以太网协议

以太网协议ethernet

ethernet规定:一组电信号构成一个数据报,叫做'帧',每一数据帧分成:报头(head)和数据(data)两部分

  • head包含:(固定18个字节)

  • 发送者/源地址,6个字节

  • 接收者/目标地址,6个字节

  • 数据类型,6个字节

  • data包含:(最短46字节,最长1500字节)

  • 数据报的具体内容:head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

这就像写信,发送者的地址(源地址)就是你家的地址,接收者地址(目标地址)就是对方的收信地址,你家的路由器就相当于邮局。其实在计算机通信中的源地址和目标地址指的是Mac地址。

2.2、Mac地址

head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址

mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

2.3、广播地址

有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)

ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼,具体请百度

3、网络层

有了物理和数据链路层,其实就可以实现互联网通信啦,但是通信范围很小,大概就是一个教室,那如何扩大范围,进行跨局域网通信,这就要经过网络层,网络层实体代表:路由器。

3.1、IP地址

规定网络地址的协议,广泛采用的v4版本即ipv4,范围:0.0.0.0-255.255.255.255

ip地址分为 网络部分:标识子网,主机部分:标识主机

3.2、子网掩码

就是表示子网络特征的一个参数,用于判断任意两个IP地址是否处在同一个子网络

3.3、ARP

ip和mac的对照表

4、传输层

4.1、端口

0--65535,一个应用程序可以监听多个端口,但是一个端口只能属于一个应用程序

应用程序 FTP TFTP TELNET SMTP DNS HTTP SSH MYSQL
熟知端口 21,20 69 23 25 53 80 22 3306
传输层协议 TCP UDP TCP TCP UDP TCP TCP TCP

DNS:把网址转换成ip地址

从浏览器发送出去的数据,都是http协议,默认是80端口

4.2、TCP协议:可靠传输(可靠传输如何保证?三次握手,四次挥手)

请求链接(三次握手)

​ -客户端向服务端发送链接请求 # 第一次
​ -服务端回复可以建立,并且带着跟客户端建立链接的数据报 # 第二次
​ -客户端收到后,链接建好了 # 第三次

​ 这个过程后就可以可靠传输数据

断开链接(四次挥手)

​ -客户端告诉服务端,要断开 # 第一次

​ -服务端收到,回复ok # 第二次

​ -服务端可能还有数据在传递,暂时还没断开,需要等数据传完

​ -服务端告诉客户端,我要断了 # 第三次

​ -客户端收到,回复ok # 第四次

4.3、UDP协议:不可靠传输

现在基本用不上了,略

5、应用层

http协议,ftp协议,websocket协议

posted @ 2021-04-20 10:27  黑影Poco  阅读(53)  评论(0)    收藏  举报