回顾:计算机网络之传输协议

今天面试真是超级难受。之前面试的公司问的都是项目,我准备的东西也就偏向项目了一点。然而,今天面试的面试官特别倾向于基础。结果,快排没写出来,一个简单的算法题,解题的思路跟面试官提示的不大一样。准备接下来花一段时间好好复习回顾下以前学的计算机网络、数据结构、数据库、操作系统的内容。


 

TCP是面向连接的可靠数据传输服务,还有拥塞控制机制。简单地说,当双方之间网络阻塞时,TCP可以抑制发送进程。

UDP不面向连接,也没有拥塞控制,所以速度比TCP快,当然可靠性无法保证。

在选择了协议以后,应用还需要考虑目的主机的地址(用IP地址说明)和主机上的什么进程,后一个问题是用端口解决的。即不同类型的web程序,其端口不同。

应用层协议规定应用程序之间如何相互传递报文。最著名的就是HTTP协议(超文本传输协议)

HTTP用TCP作为其支撑运输层协议,由于其服务器并不存储客户端信息,HTTP也是一个无状态协议。此外HTTP默认使用持久连接。我们知道如果一个请求或相应建立在TCP上,就有这样的问题:是每个请求都用一个新的TCP还是用一个TCP管理所有请求,这两种手段分别称作非持久连接和持久连接。因为非持久连接对于服务器端来说压力巨大,一般默认为持久连接,当一个链接在一段时间内没有被使用,服务器就会终止这个TCP连接。 


 

三次握手和四次握手:

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。

三次握手分别为 SYN、SYN+ACK、ACK

客户端发送连接请求报文(SYN,第一次),服务端接受连接后回复ACK报文,并为这次连接分配资源(第二次)。客户端接收到ACK报文后也向服务端发生ACK报文(第三次),并分配资源,这样TCP连接就建立了。

断开连接四次握手分别为:FIN、ACK、FIN、ACK

 

 

 
posted @ 2017-05-10 13:16  六层楼  阅读(369)  评论(0编辑  收藏  举报