网络协议相关知识介绍

2018-06-03  本文已影响55人  sososeen09

网络的五层划分

网络层次的划分有OSI(Open System Interconnect,开放式系统互联)七层模型和TCP/IP模型。
OSI模型按照从顶层到底层划分7层,分别是:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
由于OSI模型划分的层数太多、模型比较复杂,实现起来比较困难,因此当前网络模型使用的是TCP/IP模型。
TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将网络分成四个层次,每一层都有对应的协议:

网络各层连接示意图

TCP和UDP的区别

先说UDP吧,UDP的全称是User Datagram Protocol,又称为用户数据报文协议,UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议),而且不保证接收端可以收到。在一些即时通讯领域会采用UDP。

TCP的全程是Transmission Control Protocol,又称为传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。

那么TCP是如何保证可靠性的呢?

TCP保证可靠性的手段有:停止等待协议、滑动窗口协议、流量控制、拥塞控制等。

TCP的三次握手

三次握手(Three-Way Handshake)即建立TCP连接,指的是在建立TCP连接的过程中,需要客户端和服务端总共发送3个包以确认连接的建立。

3次握手

那么为什么需要3次握手呢?

我们先来分析一下如果只有2次握手会怎么样,客户端发送一个请求,服务端发出一个响应,此时的情况下连接有可能根本就没有建立起来,因为网络传输是要花费时间的,服务端处理一个客户端连接也可以需要时间,客户端有可能在发送一个连接请求之后马上就关闭了,而此时服务端只是向客户端发送了一个确认的包,紧接着就开始处理网络请求了,这种情况下是不可能成功的。而且既然不需要等待客户端再次发出一个确认数据包,2次握手等同于1次握手,连接不可靠。

如果超过3次握手也没这个必要,毕竟3次就已经可以保证连接建立了。

TCP的四次挥手

四次挥手(Four-Way Wavehand)即终止TCP连接,也就是说断开连接的时候需要客户端和服务端总共发送4个包来确认连接的断开。这个断开连接的过程可以由客户端和服务端任意一方来发起。

四次挥手——客户端主动关闭

4次挥手还存在着两端同时发起主动关闭的情况,流程图如下:

四次挥手——双方同时主动关闭.png

那么为什么需要4次挥手才能保证连接的断开呢?
这是因为客户端和服务端的读写是双向的,客户端和服务端都要分别发出两个包:

相关阅读

上一篇 下一篇

猜你喜欢

热点阅读