网络协议

社会主义新天地 提交于 2019-11-28 08:11:08

网络协议

1. C/S、B/S 架构

C:client端   B:browse浏览器   S:server 端

1.1 C/S 架构:

​ 基于客户端与服务端之间的通信。 如QQ、抖音等。

​ 优点:满足个性化设置,响应速度快。

​ 缺点:开发成本、维护成本高,占用空间,用户固定。

1.2 B/S 架构:

​ 基于浏览器与服务端之间的通信。 如360、谷歌浏览器。

​ 优点:开发、维护成本低,占用空间相对低,用户不固定。

​ 缺点:功能单一,没有个性化设置,响应速度慢一些。

2. 网络通信原理

​ 1. 两台计算机要有一堆连接介质连接;

​ 2. 需找到对方计算机软件位置;

​ 3. 遵循互联网通信协议。

3. OSI七层协议(TCP/IP五层):

结构:应用层(应用层、表示层、会话层)、传输层、网路层、数据链路层、物理层

1565745813068

3.1 物理层:

​ 介质:光缆、双绞线(网线)、无线电波等。

​ 主要是基于电器特性发送高低电信号(1,0) 也叫比特流 010101110...

3.2 数据链路层:

​ 对电信号(比特流)进行分组,定义了分组方式。

3.2.1 以太网协议:

​ 对比特流进行合理的分组。按每一帧分割。

​ 一组电信号(比特流)数据构成一个数据报,叫做“帧”。

​ 每一个数据帧:由报头head和数据data组成。

​ 每帧最短64字节,最长1518字节,超过就会分片发送。

head data
固定18个字节(源地址6字节、目标地址6字节、数据类型6字节) 46—1500字节

3.2.2 mac地址:(物理地址)

​ 计算机上网卡上标注的地址(计算机地址)。

​ 12位16进制数组成表示(前六位是厂家编号,后六位是流水线号)。

​ 每帧的结构:源mac地址 目标mac地址 数据类型 | data

3.2.3 计算机通信方式:

​ 同一个局域网内,通过广播的形式通信。 局域网所有的计算机都能接受消息、分析消息。是否是找'我'(mac地址)的,不是就会丢弃。

​ 只能在局域网内进行广播。范围太大,会造成广播风暴,效率极低。

3.2.4 交互机的mac地址学习功能:

​ 前提:知道目标的mac地址。 在同一局域网下,第一次发消息是以广播形式,当交互机的接口记录到每个计算机的mac地址后,再发消息就是单播模式。

​ 单播:是一个单个的发送者和一个接受者直接通过网络进行的通信。

​ 广播:“一对所有”的通讯模式。

3.3 网络层:

​ 互联网是由一个个彼此隔离的小的局域网组成的。

​ 功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址。

3.3.1 IP协议

​ 能够确定局域网(子网)的位置。

​ 规定网络地址的协议叫Ip协议,它定义的地址称为IP地址,广泛采用IPV4,它规定网络地址由32位2进制表示。 范围为:0.0.0.0 ~255.255.255.255

​ 一个IP地址通常写成 四段十进制 , 如:192.168.14.144

IP地址分为两部分: 网路部分:标识子网

​ 主机部分: 标识主机

子网掩码:表示子网络特征的参数,中国是C类子网掩码:255.255.255.0

​ IP地址与子网掩码的二进制码分别进行AND(与)运算,就可判断两个IP地址是否在同一局域网(子网、网段)下。

​ 192.168.14.0 网关地址被占用

​ 192.168.14.255 广播地址被占用

​ 以上三个都属于192.168.14.0的局域网,一个局域网可连254台计算机。

3.3.2 ARP协议

​ 在实际情况中,我们无法知道目标的mac地址,因此需要通过一定的方法获取。

ARP协议可以从对方的IP地址获取到对方的mac地址 。

​ ARP协议功能:广播的方式发送数据包,获取目标主机的mac地址。

源mac地址 目标mac地址 源IP地址 目标IP地址 数据部分
发送端 发送端mac FF:FF:FF:FF:FF:FF 192.168.14.144 192.168.14.20 data

​ 第一次发消息:发送到交互机——>路由器:广播形式发出。 目标计算机接收到信息时,会返回消息,将自己的mac地址传回。

3.4 传输层

​ 端口协议:能够确定软件在计算机的位置。

​ 有65535个端口;0~1023操作系统专门使用的端口; 3306是数据库端口; 自己开发软件都是8080以后的端口号。

3.4.1 UDP协议(User Datagram Protocol):

​ 用户数据报协议:不可靠的、无连接的传输协议,传输效率高、面向数据包,尽最大努力服务,无拥塞控制。应用:域名系统(DNS),视频流,QQ, 微信。

3.4.2 TCP协议 (Transmission Control Protocol)

​ 可靠的、面向连接的协议、流式协议,传输效率低全双工通信,基于字节流的传输层的通信协议。应用:浏览器、文件传输等。

3.4.3 TCP协议的三次挥手和四次挥手

  1. 建立连接(三次挥手)

    1565693902919

    syn: 请求 seq :序列号

    TCP三次握手的过程如下:

    1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
    2. 服务器端收到SYN报文,回应一个SYN(SEQ=x)和 ACK(ACK=x+1)报文,进入SYN_RECV状态。
    3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=x+1)报文,进入Established(连接)状态。

    三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

    服务端可以将请求与确认同时传给客户端。

  2. 断开连接(四次挥手)

    1565687266314

    ​ 客户端发送服务端数据时,在数据传输完成后,会马上发出fin=1的请求,主动请求断开连接。但此时,服务端可能还在给客户端传输数据,因此不能同时断开,需服务端在传输结束后,再次请求断开连接。所有共有4次挥手。

    TCP四次挥手的过程如下:

    建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。

    1. 客户端的应用进程首先调用close,称该端执行“主动关闭”(active close)。客户端的TCP会发送一个FIN(fin=1,seq=y)分节,表示数据发送完毕。
    2. 接收到这个FIN的服务端端执行 “被动关闭”(passive close),这个FIN由TCP确认,并返回一个ACK(ack=1+y),断开一个通道连接。
      ​注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,
      因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
    3. 一段时间后服务端也无数据可发时,服务端的应用进程会调用close关闭它的套接字。这导致它的TCP也发送一个FIN(fin=1,seq=y)分节。
    4. 接收到这个最终FIN的客户端,它的TCP会确认这个FIN,返回一个ACK(ack=1+y),断开另一个通道。

    每个方向都需要一个FIN和一个ACK,因此需要4次。

    syn洪水攻击:制造大量的假的无效的IP请求服务器,致使正常的IP访问不了服务器。

3.5 应用层

​ 自己定义的协议。

​ 应用层功能:规定应用程序的数据格式。

​ TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

广播(局域网内)+ mac地址(计算机位置)+ IP(局域网位置)+ 端口(软件在计算机的位置)

有了以上四个参数,就可以确定任何一台计算机的软件的位置。

1565689387174

总结:

1.前提:知道目标mac:

​ 计算机A 发送一个消息给 计算机B

​ 源码mac 目标mac 源IP 目标IP 数据

​ 单播的形式发送到交换机,交换机会检测自己的对照表有没有目标mac,如果有,则单播传;如果没有,传给上一层路由器: 路由器收到消息,对消息进行分析: 要确定目标计算机与本计算机是否在同一网。

​ 如果在同一网段,直接发送给对应的交换机,交换机再单播发给目标mac,传输信息。

​ 如果不是在同一网段: 会通过路由器协议找最优路径,然后找到另一个路由器,发送给对应的交换机,交换机再通过广播\单播发给目标mac,传输信息。

2. 前提:不知道目标mac:

​ 计算机A 发送一个消息给 计算机B

​ 源码mac 目标mac(未知) 源IP 目标IP 数据

​ 单播的形式发送到交换机,交换机交由上一层路由器:路由器收到消息,对消息进行分析: 要确定目标计算机与本计算机是否在同一网段,

​ 如果在同一网段通过 IP以及ARP协议获取到对方的mac地址,然后再通信。

​ 如果不是在同一网段: 会通过路由器协议找最优路径,然后找到另一个路由器,通过 IP以及ARP协议获取到对方的mac地址,然后再通信。

1565691990892

OSI协议 协议及作用
应用层 自定义协议
传输层 端口协议:UDP协议(不可靠传输)、TCP协议(可靠传输)
网络层 IP协议:确定局域网(子网)的位置
ARP协议:从目标的IP地址获取目标的mac地址。
数据链路层 以太网协议:比特流分组;
mac能够确定计算机在局域网的位置
物理层 将信息转化成比特流发出

1565690708317

扩展

路由器:

​ 外网(公网)IP:真正能够访问的地址;

​ 内网(局域网)IP:都是虚拟的IP的,由DHCP协议:路由器自动分配IP地址、网关等。

DNS服务器:

​ 域名解析(将网址解析成IP地址以及相应的端口)。

例:描述访问JD网站流程的步骤:

你的电脑输入"www.JD.com"网址,以单播的方式传到交互机,再以单播方式传到路由器,路由器将网址传给DNS服务器进行域名解析,然后将IP地址、接口等信息返回给路由器;路由器会根据据IP地址进行判断。
    如果是同一个局域网,则以广播或者单播的形式访问到目标服务器的软件上。
    如果不是同一局域网,会经过NPI:IP置换技术,将本机的IP地址换成路由器的IP地址,然后经过路由协议,选取最优的路线;找到目标路由,再以广播或者单播的形式访问到目标服务器的软件上(也可通过端口映射计算,能够直接连接到目标交换机上)。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!