最近在准备实习面试,所以复习一些基本知识点,故做此笔记。
在这篇文章中,你将看到:
一.什么是TCP和UDP?
二.TCP和UDP的共同点以及特点是什么?适合用于什么场景。
三.TCP的三次握手,二次分手是什么?
四.TCP面向连接是如何面对计算机网络领域中的两个重要问题?
五.TCP是如何实现拥塞避免的?
1.什么是TCP和UDP?
在时候就不得不提计算机网络的五层协议啦,TCP和UDP就是在计算机网络中的第二层协议运输层的两个协议啦,而运输层基于下面的网络层的IP协议,是一个明显的端到端协议,IP以及再下面的链路层协议解决的主机与主机之间如何传输数据,而运输层协议更加关注的则是如何把传递到指定主机上的数据分发给指定的进程,也就是说,TCP和UDP需要关心的问题是如何进行进程间的通信,也就是端口绑定到那个进程, 运输层目的是实现逻辑通信,如下图所示:
2.TCP和UDP的共同点以及特点是什么?适合用于什么场景。
先总结性的说一说这两种连接的特点,TCP是面向连接的协议,而UDP是不面向连接的协议,UDP的目的是尽力的进行传输(只要能把数据传输过去,其他数据完整性、丢包问题我都不管啦。嘤嘤嘤!)但是这两个协议也有共同的地方。因为,TCP和UDP最起码都是运输层协议,都要支持进程间的通信,也就是要支持多路复用和多路分解。别听这两个名词特别的高大上,简单来说,多路复用是为了能将数据交给网络层的IP协议,也就是说将各个进程的数据进行整合,一定交给IP协议(发送方)。多路分解就更简单啦,我们收到了网络层的数据包,然后将一整个数据包根据TCP或者UDP的报头进程信息进行分解和进程分发。讲到这里,我相信两种协议需要哪些信息也就一目了然了,我想要知道我要把数据发给那个进程(那个端口),发给那个主机(IP),这是我们进行数据发送的最基本信息。同时,这也是我们最简单的UDP协议的报文信息,UDP的报文信息就是只有目的IP和目的端口(进程)以及长度和校验和,换句话说,如果不同主机或者不同进程发送相同主机和相同端口,UDP是无法进行识别的。
但是在实际应用当中,主机号ÿ