网络通讯TCP/UDP - 邱乘屹的个人技术博客

TCP/IP 四层模型

说到网络通信 就要谈一谈耳熟能详的TCP/IP 四层模型了
在这里插入图片描述

  1. 链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡
  2. 网络层(互联网层):处理分组在网络中的活动,比如分组的选路。
  3. 传输层:主要为两台主机上的应用提供端到端的通信。
  4. 应用层:负责处理特定的应用程序细节。

HTTP协议-浏览器访问服务器的过程

在这里插入图片描述
http协议又称超文本传输协议(HyperText Transfer Protocol)是一种应用层协议。

HTTP是万维网的数据通信的基础。设计HTTP最初的目的是为了提供一种发布和接收HTML页面<网页>的方法。

1989年蒂姆·伯纳斯-李在CERN研发

1999年公布现今广泛使用的HTTP 1.1版(RFC2616)

TCP协议

TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

TCP通信需要经过创建连接、数据传送、终止连接三个步骤。

TCP通信模型中,在通信开始之前,一定要先建立相关的连接,才能发送数据,类似于生活中,“打电话”。

这种连接是一对一的,因此TCP不适用于广播的应用程序,基于广播的应用程序请使用UDP协议。

TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发。许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等。
一个TCP报文除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口号和目标端口号。

TCP通讯模型

在这里插入图片描述

TCP的三次握手四次挥手

TCP的三次握手(建立连接)和四次挥手(关闭连接)
TCP(Transmission Control Protocol) 传输控制协议
三次握手
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,
有6种标示:
SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
在这里插入图片描述

UDP协议

用户数据报协议(User Datagram Protocol,UDP)是一种传输层协议。在 TCP/IP 网络中,它与 TCP 协议一样用于处理数据包,是一种无连接的协议。

TCP 协议在进行数据传输时,需要建立连接,并且每次传输的数据都需要进行确认。当不再进行传输数据时,还需要断开连接。这样做虽然安全,但是效率较低。而 UDP 协议正好避免了这些过程,它是一种没有复杂控制,提供面向无连接的通信服务协议。

udp 发送数据

创建一个基于udp的网络程序流程很简单,具体步骤如下:

  1. 创建客户端套接字
  2. 发送/接收数据
  3. 关闭套接字
    在这里插入图片描述

TCP和UDP的区别

TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

TCP对系统资源要求较多,UDP对系统资源要求较少。

猜你喜欢

转载自blog.csdn.net/weixin_47074764/article/details/106463351
今日推荐