网络协议
2024-03-04 09:36:36 0 举报
AI智能生成
网络协议是计算机网络中,为进行数据交换而建立的规则、标准或约定的集合。它定义了计算机之间如何通过网络进行通信,包括数据的格式、编码方式、传输方式以及处理错误的方法等。常见的网络协议有TCP/IP、HTTP、FTP、SMTP等。TCP/IP是互联网的基础协议,它定义了数据如何在网络中传输;HTTP是用于浏览器和服务器之间传输超文本的协议;FTP是用于文件传输的协议;SMTP是用于电子邮件传输的协议。网络协议的存在使得不同的计算机系统能够互相理解和交流,从而实现了全球范围内的信息共享和数据传输。
作者其他创作
大纲/内容
七层网络模型
四层网络模型
五层网络模型
网络模型
全能型术语
包
用于表示数据链层中包的单位
帧
IP中数据的单位
片
TCP数据流中的信息
段
应用协议中数据的单位
消息
数据包
一种计算机局域网技术
以太网
在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
ARP协议详解
ARP协议(地址解析协议)
IP协议
TCP 能够确保连接的建立和数据包的发送TCP 支持错误重传机制TCP 支持拥塞控制,能够在网络拥堵的情况下延迟发送TCP 能够提供错误校验和甄别有害的数据包。
小明(客户端)-小红(服务端)1.小明给小红打电话,接通了后,小明说喂,能听到吗,这就相当于是连接建立。2.小红给小明回应,能听到,你能听到我说的话吗,这就相当于是请求响应。3.小明听到小红的回应后,好的,这相当于是连接确认。在这之后小明和小红就可以通话/交换信息了。
1.客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。2.服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。3.客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。
三次握手
小明(客户端)-小红(服务端)1.小明对小红说,我所有的东西都说完了,我要挂电话了。2.小红说,收到,我这边还有一些东西没说。3.经过若干秒后,小红也说完了,小红说,我说完了,现在可以挂断了4.小明收到消息后,又等了若干时间后,挂断了电话。
1.\t客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。2.\t服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。3.\t客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。4.\t服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。5.\t客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。6.\t服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。
四次挥手
基础概念
每次请求完就断开通讯,下一次请求又是一个新的连接通讯。任何请求之间无关联
优点:节省网络传输时间
无状态的补充
cookie技术
无状态
HTTP 1.0 仅仅提供了最基本的认证,这时候用户名和密码还未经加密,因此很容易收到窥探。HTTP 1.0 被设计用来使用短链接,即每次发送数据都会经过 TCP 的三次握手和四次挥手,效率比较低。HTTP 1.0 只使用 header 中的 If-Modified-Since 和 Expires 作为缓存失效的标准。HTTP 1.0 不支持断点续传,也就是说,每次都会传送全部的页面和数据。HTTP 1.0 认为每台计算机只能绑定一个 IP,所以请求消息中的 URL 并没有传递主机名(hostname)。
1.0
HTTP 1.1 使用了摘要算法来进行身份验证HTTP 1.1 默认使用长连接,长连接就是只需一次建立就可以传输多次数据,传输完成后,只需要一次切断连接即可。长连接的连接时长可以通过请求头中的 font color=\"#f15a23\
1.1
头部压缩,由于 HTTP 1.1 经常会出现 User-Agent、Cookie、Accept、Server、Range 等字段可能会占用几百甚至几千字节,而 Body 却经常只有几十字节,所以导致头部偏重。HTTP 2.0 使用 HPACK 算法进行压缩。二进制格式,HTTP 2.0 使用了更加靠近 TCP/IP 的二进制格式,而抛弃了 ASCII 码,提升了解析效率强化安全,由于安全已经成为重中之重,所以 HTTP2.0 一般都跑在 HTTPS 上。多路复用,即每一个请求都是用作连接共享。一个请求对应一个id,这样一个连接上可以有多个请求。
2.0
1.0/1.1/2.0比较
明文
密文
对称密钥-对称加密
非对称密钥-非对称加密
密钥
是算法公开、加密和解密速度快,适合于对大数据量进行加密
特点
DES、3DES、TDEA、Blowfish、RC5和IDEA
常见算法
加密的算法是公开的,所以一旦私钥被泄露,那么密文就很容易被破解
缺点
对称加密
加密和解密花费时间长、速度慢,只适合对少量数据进行加密
RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等
非对称加密
密码学基础
使用SSL/TLS对数据进行加密/解密,使用HTTP对加密后的数据进行传输
https协议=http协议+SSL/TLS协议
1.1 客户端发向服务端发起HTTPS请求
1.2 服务端有一个非对称加密密钥对,服务端自己保存私钥(A1),将公钥(A2)发送给客户端
1.3 客户端生成对称加密密钥(B)
1.4 客户端使用服务端返回的公钥(A2)加密生成的对称加密密钥(B)发送至服务端
1.5 服务端使用私钥(A1)解密客服端发送过来的被客户端使用公钥(A2)加密的对称加密密钥(B),获取客户端生成的对称加密密钥(B)
1.生成对称密钥
客户端和服务端使用对称加密密钥(B)加密数据进行传输
2.业务数据传输
一个HTTPS请求实际包含两次HTTP传输
Https
HTTP和HTTPS协议,看一篇就够了
Http
websocket
TCP/IP协议族
UDP 能够支持容忍数据包丢失的带宽密集型应用程序UDP 具有低延迟的特点UDP 能够发送大量的数据包UDP 能够允许 DNS 查找,DNS 是建立在 UDP 之上的应用层协议。
单播
广播
UDP用户数据报协议
SCTP(流控制传输协议)
1.A输入域名
2.通过DHCP服务(或者本机配置的host等)解析域名,获取IP(IP地址分网络部分和主机部分)
2.1 通过IP协议找到对应的子网
2.2 通过ARP协议,广播给同一子网下的所有服务(B\\C\\D\\E....),请求获取B服务的MAC地址
2.3 B\\C\\D\\E等服务匹配IP地址,匹配成功则返回自己的MAC地址,否则不响应(B做出应答返回自己的MAC)
2.获取B服务MAC地址
3.1 通过IP地址在同一子网下广播数据
3.2 同一子网下的BCDE等服务与自己MAC地址做对比,匹配则接收数据(B服务匹配MAC地址成功)
3.数据传输
有了 IP 地址,为什么还要用 MAC 地址?
有了 IP 地址,为什么还要用 MAC 地址?
刨根问底
这应该是把计算机网络五层模型讲的最好是文章了,看不懂你打我
两台计算机之间的数据是如何传输的(A——>B)
网络协议
0 条评论
回复 删除
下一页