传输层有两类协议,TCP和UDP协议,应用层的许多协议的完成都与这两个协议有对应关系。前者提供的是一种可靠服务,但是相对较速度慢;后者不可靠但是速度快。(就像你需要运输一件物品,有两个快递人选提供给你选择,龟兔赛跑中的乌龟和兔子。TCP就好比乌龟,把东西交给他,运输速度慢但是他会非常稳当的帮你把东西送到;而UDP就是那只兔子,固然速度很快,但是保不准途中会出现什么岔子,可能出现数据丢失等问题)我们在传输文件的时候一定是基于TCP协议,因为文件如果有部分丢失,可能就全部受损了;而在语音或者视频聊天时,却是基于UDP协议进行的,那是因为我们追求的是通话之间的实时性。
TCP协议
应用层的HTTP、FTP、TELNET在进行相关操作之前都是使用TCP来建立连接,而TCP建立连接的过程被称作“三次握手”。在这个过程中主要就是SEQ与ACK的确认:
PC1要与PC2建立连接,那么他就要向PC2发送一个随机的初始序列号SEQ(设为a)以及确认序列号ACK初始值为0;
然后告诉PC2,要是你收到了我的信息就把我给你的SEQ加1(a+1)作为ACK发送给我;
而PC2这边。他也要确认PC1能不能收到他的消息,于是他以同样的方法給PC1也发送了一个确认消息(初始序列号设为b);
PC1收到后,他需要再回复PC2一条消息,此时PC1的初始序列号已经变成了a+1了,他給PC2的确认序列号是b+1,并且告诉PC2:“我已经知道你的消息了别再发了”;
此时他们就已经成功建立了连接。
三次握手其实可以比作你和好久不联系的老朋友打电话:
首先你拨号过去,得问:“你好,请问你是易烊千玺吗?”这时候你还不确定对方的身份,同时对方也不知道你的身份
然后那边回答:“是的,我是易烊千玺,你是迪丽热巴?”这时候,你就可以确定他的身份了,同时他向发问,想要确定你的身份。
最后,你回答:“是的,我是迪丽热巴”这个时候,他那边也可以知道你的身份了。这个时候你们彼此已经确定了对方的身份,相当于就已经成功建立的了连接,就可以开始扯谈了
以上是TCP连接建立的过程,而连接断开的过程被称为“四次握手”,原理和“三次握手”差不太多。
最近还整理了很多网工学习资料 有需要的可以找我要