前言:在Java面试中,计算机网络的知识也是一项重点,所以笔者在此对计算机网络的相关知识进行总结。html
自下而上:物理层(物理介质,比特流)、数据链路层(网卡、交换机)、网络层(IP协议)、传输层(TCP/UDP协议)、会话层(建立/创建/断开链接)、表示层(翻译,编码,压缩,加密)、应用层(HTTP协议)。面试
简化为TCP/IP模型:网络层(物理层、数据链路层、网络层)、传输层,会话层,应用层(表示层,应用层)。数据库
参考:缓存
http://www.javashuo.com/article/p-hbpgmbql-dd.html服务器
做用:传输层为它上面的应用层提供通讯服务。网络
在OSI七层参考模型中,传输层是面向通讯的最高层,也是用户功能的最底层。tcp
传输层两大重要的功能:复用和分用。 ui
1)复用:在发送端,多个应用进程公用一个传输层。编码
2)分用:在接收端,传输层会根据端口号将数据分派给不一样的应用进程。加密
和网络层的区别:
1)网络层为不一样主机提供通讯服务,而传输层为不一样主机的不一样应用提供通讯服务。
2)网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。
参考:
http://www.javashuo.com/article/p-pgzcdzfp-mo.html
注:该博文中给出了较为详细的传输层知识点。
在tcp创建链接时,须要进行“三次握手”。关于“三次握手”的通俗理解:“你有空吗”,“我有空”,“OK,我来了”。
在tcp断开链接时,须要进行“四次挥手”。关于“四次挥手”的通俗理解:“我要走了”,“没问题”,“不忙,他也要走”,“好,那我和他一块儿走”。
参考:
http://www.javashuo.com/article/p-diizpmsc-bm.html
http://www.javashuo.com/article/p-pgzcdzfp-mo.html
长链接:指在一个TCP链接上能够连续发送多个数据包,在TCP链接保持期间,若是没有数据包发送,须要双方发检测包以维持此链接。
在数据库链接池中,通常使用的是长链接,这样比较节约资源。
短链接:短链接是指通讯双方有数据交互时,就创建一个TCP链接,数据发送完成后,则断开此TCP链接。
参考:
http://www.javashuo.com/article/p-vobwkkvc-dq.html
要点:
1)HTTP是一个无状态协议,为应用层协议,基于TCP/IP之上。
2)HTTP的一个工做过程分为:地址解析、封装HTTP请求数据包、经过TCP创建链接、客户端发送请求指令、服务器响应、服务器关闭链接。
参考:
https://blog.csdn.net/hguisu/article/details/8680808
要点:
1)请求由请求行、请求头和请求正文组成。
2)响应由状态行、消息报头和响应正文组成。
3)缓存能够提升了访问的流畅性。
参考:
https://blog.csdn.net/hguisu/article/details/8683290
要点:
HTTP1.0每对Request/Response都使用一个新的链接。
HTTP1.1则支持持久链接Persistent Connection, 而且默认使用Persistent connection.
参考:
https://blog.csdn.net/hguisu/article/details/8608888
主要在加解密的过程。
参考:
http://www.liqwei.com/network/protocol/2012/906.shtml
by Shawn Chen,2018.4.6日,晚。