网络协议

七层协议
  • 应用层 ,表示层,会话层,传输层,网络层 ,数据链路层,物理层

IP协议:保证传递可靠性,流控制,包顺序,基本功能寻址和分段;
TCP(传输层):一种面向连接的,可靠的,基于字节流的传输层通信协议,应用层向TCP层发送网间传输的,8位字节表示的数据流,然后把TCP数据流分成适当长度报文段。之后TCP结果包传给IP层;
三次握手:TCP是因特网的传输层,使用三次握手建立连接。

  • 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的半关闭造成的。

  • 1.某个应用进程首先调用close,该端执行主动关闭,该端发送TCP发送一个FIN分节,表示数据发送完毕。
  • 2.接收这个FIN的对端被动关闭,这个FIN由TCP确认;(FIN接收也作为一个文件结束符,传递给接收端应用进程,放在已排队等待该应用进程接收的任何数据之后,FIN的接收意味着接收端进程在相应连接上再无额外数据可接收)
  • 3.一段时间后,接收到这个文件结束符的应用进程调用close关闭它的套接字。这导致TCP也发送一个FIN。
  • 4.接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。 既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。

http协议:超文本传输协议,HTTP是一个客户端和服务器请求和应答的标准,客户端是终端用户,服务器是网站,过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
HTTP客户端发起一个请求,建立一个服务器指定端口。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
过程解析:

  • 1.用户在浏览器输入www.baidu.com;
  • 2.dns服务器解析/或者本机hosts,路由器hosts对比.获得ip;
  • 3.浏览器访问默认端口80,tcp建立三次握手,建立连接;
  • 4.发送http request请求头,服务器获得http request请求头,表示该次访问为http访问。解析请求头,获得请求格式,请求数据;
  • 5.服务器发送response响应数据,主动断开。浏览器接收response响应数据,解析文本类型。断开连接;

WebSocket协议:基于一种新的网络协议,实现浏览器和服务器全双工通信,服务器主动发送信息给客户端;
原理:websocket连线请求,然后服务器发出回应这个过程称作握手。在websocket APi,浏览器和服务器只需要一个握手动作。然后,浏览器和服务器之间就形成了一条快速通道,两者之间直接可以数据互相传送;

  • header:互相沟通的header很小只有2 bytes;
  • server push:服务器的推送,服务器不在被动接收到浏览器的请求之后才返回数据,而是在有新的数据主动推送给浏览器;
  websocket服务器响应:
  Upgrade: websocket                #告诉浏览器已经升级到websocket
  Connection: Upgrade               #告诉浏览器已经升级到websocket
  Sec-WebSocket-Accept: K7DJLdLooIwIG/MOpvWFB3y3FE8=   #将请求包“Sec-WebSocket-Key”的值,与” 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 ″这个字符串进行拼接,然后对拼接后的字符串进行sha-1运算,再进行base64编码得到的。用来说明自己是WebSocket助理服务器。

UDP(传输层):用户数据报协议,提供面向事务的简单不可靠信息传递服务;
udp和tcp区别?

  • 1.udp是无连接协议,不需要进行tcp握手;
  • 2.udp每次发送最大长度是65535,而tcp在握手后可以源源不断发送;
  • 3.udp协议使用报头校验值保证数据的安全,检验值首先发送方通过第三方篡改或者由于线路噪音受到损坏。发送和接收方的校验值将不会相符,UDP可以检测出错误;
  • 4.UDP没有可靠性保证,顺序保证和流量控制字段,可靠性差。延迟小,数据传输率高,适合对可靠性不高的应用程序。
  • 5.网络质量十分不满意环境下,UDP协议丢包比较严重。而tcp会进行验证,确保对方接收成功;
  • 6.UDP可实现对网关的所有主机进行广播;
posted @ 2021-04-17 23:44  惊风破浪的博客  阅读(9)  评论(0编辑  收藏