详解前端工程师常考面试题TCP和UDP

北京痤疮哪家医院好 http://pf.39.net/bdfyy/zjft/210630/9125685.html

TCP和UDP的区别

TCP是面向连接的,UDP是面向无连接的

UDP程序结构较简单TCP是面向字节流的,UDP是基于数据报的TCP保证数据正确性,UDP可能丢包TCP保证数据顺序,UDP不保证

下面进行详细阐述:

首先要明白什么是TCP,什么是UDP?

TCP和UDP是传输层的两个协议。它们发挥的最基本功能是将IP提供的主机-主机传输服务扩展到端到端进程级别。用外行的术语来说,就是将数据端从一台计算机上的应用程序传输到另一台计算机上的应用程序上。

TCP和UDP各有优缺点,最主要的区别就是可靠与不可靠,以及是否面向连接。两者共同构成了传输层端对端数据传输的基础。

具体来说,UDP协议,提供了不可靠的无连接传输服务。即:①没有确认机制。每当接收端接收到数据段时,它都会执行错误检查,无论是否有错误,它都不会将反馈提供给发送方,如果有错误,则将其丢弃。这样,发送方就不知道该数据段的传输状态,这对于提高效率是有好处的。②消息未排序即使数据段的顺序错误,接收端也不会返回错误或排序。③没有用于流量控制的反馈机制。流控制可以有效避免在接收端发生太慢的数据包丢失事件,并导致缓冲区溢出。但是UDP不处理这方面。如果丢失,它将丢失,并且不会向发送者报告错误。④没有超时机制。如果数据包丢失,将不会重发。

对于可靠传输,判断丢包,重复靠的是TCP的端编号以及确认号。TCP提供了可靠的面向连接的字节流传输协议

。在发送数据的时候,为每个字节编号,接收端收到数据之后,经过校验无误,发回确认号,确认号为接收端等待接收的写一个字节的序号。并且它会缓存到达的乱序数据,统一排序之后传递给上层。这样就解决了丢包,重复和乱序的问题。

传输层:传输层是TCP/IP协议的五层模型中的第四层。它提供应用程序之间的通信,并负责从发送方到接收方的数据传输。其功能包括:1.格式化信息流;2.提供可靠的传输。为了实现后者,传输层协议规定接收端必须发回确认,并且如果数据包丢失,则必须重新发送。

端口号:在TCP/IP协议中,使用五元组(例如“源IP”,“源端口号”,“目标IP”,“目标端口号”,“协议号”)来标志通信(你可以通过netstat-n,协议号指的是使用协议)。

端口号范围划分:

0-:众所周知的端口号,例如HTTP,FTP,SSH和其他广泛使用的应用层协议,它们的端口号是固定的,您不能随意写入您自己的程序绑定一个知名的端口号。

-:操作系统动态分配的端口号。客户端程序的端口号由操作系统从该范围分配。

常见端口号如下:

ssh服务器:22端口

ftp服务器:21端口




转载请注明:http://www.aierlanlan.com/rzgz/2547.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了