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?