开发中常用网络协议基础知识

七层模型

物数网传会表应
物理层:信息插座连接器RJ45,工作组802.3
数据链路层:分组方式ATM(异步转移模式),光纤分布式数据接口FDDI(在光缆上发送数字信号的一组协议)
网络层:socket,icmp,IP,ICMP
传输层:tcp,socket,UDP
会话层:RPC,SQL等
表示层:加密,ASCII,SSL/TLS
应用层:http,ftp,telnet

nginx可以代理http和tcp请求,工作在传输层和应用层

TCP

面向连接的,可靠的,基于字节流的传输层协议。
TCP的三次握手:主机A发送x,主机B返回x+1和y,主机A发送y+1。连接建立。

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

TCP的四次挥手:主机A发fin,主机B接收到发ack和fin,主机A发ack

1 、当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求;
2、 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1;
3、 由B 端再提出反方向的关闭请求,将FIN置1;
4 、主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束;

UDP

无连接的,不可靠的传输协议。
TCP和UDP的区别:网络开销小(段结构比TCP简单);TCP有连接UDP无连接;TCP字节流UDP数据报文模式;TCP保证正确可靠,顺序UDP不保证顺序;UDP实时性好(结构和方式简单)。

Telnet协议

是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。应用层。
ping和telnet的区别

ping用来检查网络是否通畅或者网络连接速度的命令
telnet是用来探测指定ip是否开放指定端口

ping采用icmp协议(在网络层,它是TCP/IP协议簇的一个子协议,常用检测网络通畅)

HTTP

建立在TCP上的超文本传输协议
https:安全的http。http+ssl,ssl是安全套接字协议,在传输层与应用层之间对网络连接进行加密。

webService

即web服务,是一种跨语言和跨平台的远程调用技术。

webservice和http的区别
1、HTTPService基于http协议,而WebService基于soap协议;
2、HTTPService效率较高,WebService能处理较复杂的数据类型;
3、跨域的处理不同。

soap协议

简单对象访问协议,基于xml,规范了如何用XML来交换数据。soap协议可以基于http,借助http传输。

HTTPS 忽视安全提醒或者curl -K的过程

对称加密:一个秘钥加解密
非对称加密:公钥加密时私钥解密,私钥加密时公钥解密
对称加密效率优于非对称加密
https流程,客户端发送请求返回证书,验证证书确认服务器身份,用服务器证书公钥加密随机值,给服务器,服务器用私钥解密并接着用随机值进行加密会话内容。
验证证书的过程:服务器发送给客户端的包括公钥(明文),指纹(密文),指纹算法(密文),过期时间(明文)等信息。客户端先去确认证书颁布者的可信度,确认后采用证书颁布者的父证书进行解密指纹和指纹算法,通过指纹算法计算指纹,确认明文信息没有被修改。
跳过认证证书:服务器因为证书过期,证书的证书颁布者不信任跳过证书,客户端和服务器使用DH算法进行加密。
单向证书和双向证书:双向证书,客户端和服务端都要验证对方证书。单向证书服务端不会验证客户端的证书。

socket

参考Socket原理讲解

套接字,不同主机应用双向通信端点的抽象。位于应用层和网络层中间,是应用程序和网络协议进行交互的接口。起源于Unix,用“open–读写–关闭”模式操作。http基于socket实现。
123

webSocket

http1.1 半双工 同一时间,客户端和服务器只能有一方发送数据。
http设计之初只是看网页,无法适应网页游戏,客户端服务端大量数据交互的场景。
webSocket是全双工(webSocket和socket没关系)
浏览器和服务器再通过Tcp建立连接后都会进行一次http通信
通过http带上特殊的请求头,进行协议升级,升级为webSocket。
数据包在webSocket中称为帧。
内容
opcode:用定义帧的数据类型
paload长度:定义该数据帧的长度,选用最开始7为做标志位,若是0-125则只看这7位(2^7=128),而126则使用扩展payload长度,到128刚好可以扩展三次,每个扩展长度16位。使用扩展位是,扩展位存放实际长度,126 7 8仅作标记用。

payload数据:实际要传输的数据

都是消息头加消息体。
webSocket只有在建立连接的时候用到了http,然后就没有关系了。

为什么要用RPC

tcp基于字节流,都是01,产生粘包问题
通过包装数据,用消息头和消息体
消息头中除了存放边界外,还可以存放格式这就是协议
RPC区别于http长连接,会在双方交互过程中加个连接池。(HTTP也可以加)

常见文件传输协议:

FTP

基于TCP的应用层文件传输协议,使用客户/服务器模式。延时高。比http复杂,用到两个TCP链接,一个命令链路,一个数据链路。是TCP/IP协议组中的协议之一。
SFTP:基于ssh,安全的ftp,传输效率比ftp慢。
TFTP:简单文件传输协议,使用UDP,内存占用比ftp小,
FTP和TFTP:
1.不需要验证客户端权限;
2.对用于局域网和远程UNIX计算机中,FTP多用于互联网。
3.TFTP使用UDP,FTP使用TCP
4.TFTP只支持文件传输,不支持交互。

SCP

scp用于linux复制文件和目录,基于ssh登录进行安全的远程拷贝。
SSH:基于应用层的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。
SCP和SFTP:都用于传输文件。scp仅限于传输文件,不提供用于删除、列出、重命名或其他此类文件操作的方法。sftp可以交互,实现上述方法。sftp支持断点续传,scp不支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小明和大树

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值