01-常用协议
1.常用协议
1.应用层协议:
1.域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。
2.文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。
3.简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能。
4.超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。
6.简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。
7.远程登录协议(Telnet):用于实现远程登录功能
8.WebSocket 协议
9.SSH 协议:SSH 为 Secure Shell 的缩写,专为远程登录会话和其他网络服务提供安全性的协议
2.传输层协议
1.TCP 协议
2.UDP 协议
3.网络层
IP协议
2.TCP三次握手和四次挥手
参考博客:https://blog.csdn.net/qzcsu/article/details/72861891
名词解释:
syn:synchronize (同步) :握手的时候用到,syn表示发送方想要给接收方发送消息
seq:sequence (序列号) :握手和挥手都能用到,一个序列号
ack:acknowledge (确认):接收方接收到发送方的syn或者fin,需要回复ack表示确认收到消息
fin:finish (完成):挥手的时候用到,syn表示发送方想要断开连接
1.TCP三次握手过程?
1.客户端发送syn+seq到服务端,第一次握手
解释: syn+seq表示客户端想要和服务端通讯
2.服务端收到客户端请求,回复ack+syn+seq, 第二次握手
解释: ack表示确认,客户端收到之后就能确认客户端自己能够给服务端发送通讯,并且服务端也能收到; syn+seq表示服务端也想要和客户端通讯 第二次握手,服务端回复自己能够收到客户端请求(ack),并且询问客户端是否能够收到自己的消息(syn+seq) 一般服务端要立刻给予客户端ack确认,否则客户端会多次重试尝试建立连接
3.客户端收到服务端的回复,回复ack,第三次握手
解释: 服务端收到客户端ack回复,表示客户端也能收到服务端的消息 至此客户端和服务端都能给对方发送消息,和收到对方的消息,通道通畅,可以建立连接
2.TCP四次挥手过程?
1.客户端发送fin+seq到服务端,第一次挥手
解释: 仅仅表示告诉服务端客户端想要结束连接; 发送之后,客户端不在发送数据,但是仍然可以收到服务端发送的数据
2.服务端回复ack,第二次挥手
解释: 服务端收到客户端fin请求的时候,服务端可能还在给客户端准备或响应数据,还没有结束; 先回复ack,表示告知客户端我已经知道你要断开连接了,这里服务端需要立刻回复ack, 因为客户端如果没有收到ack会重复发送fin请求
3.服务端给客户端发送fin+seq,第三次挥手
解释: 服务端已经响应完数据,这个时候主动给客户端发送fin+seq,告诉客户端我也想断开连接
4.客户端回复ack,第四次挥手
解释: 告知服务端已经收到断开连接意愿了,至此客户端和服务端双方都确认断开连接了,双方可以释放连接资源了
3.为什么TCP 是三次握手呢?
主要是因为双方都要确认对方能够收到自己的发送的消息
4.为什么TCP 是四次挥手?
主要是客服端想要断开连接的时候,服务端可能还在给客户端处理数据,
服务端需要立刻回复ack,是因为客户端如果没有收到ack的话,会一直重试发送fin+seq;
服务端处理完毕数据后再主动发送fin+seq信息让客户端确认
Last updated
Was this helpful?