网络通信协议概念
网络通信协议,为连接不同操作系统和不同硬件体系结构的互联网络引提供通信支持,是一种网络通用语言。它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。
上图链接: 计算机网络中的七层模型
面试题总结
网络协议
1.TCP与UDP的区别
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
7、UDP传输速度快、操作简单、要求系统资源较少,由于通讯不需要连接,可以实现广播发送;UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,也不重复发送,不可靠。
8、TCP是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手。那么它的优点在于数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。缺点是相比于UDP速度会慢,要求资源也比较多。
9、还有用内部结构的图来说明区别的,但我仅仅应付面试,背出前面四点以上差不多
2. 什么是HTTP,它与上面的两种有啥关系
HTTP全称是HyperText Transfer Protocol,即:超文本传输协议,从1990年开始就在WWW上广泛应用,是现今在WWW上应用最多的协议, Http是应用层协议,当你上网浏览网页的时候,浏览器和Web服务器之间就会通过HTTP在Internet上进行数据的发送和接收。Http是一个基于请求/响应模式的、无状态的协议。即我们通常所说的Request/Response。
TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。
3. 能不能讲讲HTTP请求与响应的组成与相应的状态码
这个之前有写过: HTTP请求与响应组成与正则解析总结
状态码 | LABEL | 解释 |
---|---|---|
200 | OK | 请求成功接收并处理,一般响应中都会有 body |
201 | Created | 请求已完成,并导致了一个或者多个资源被创建,最常用在 POST 创建资源的时候 |
202 | Accepted | 请求已经接收并开始处理,但是处理还没有完成。一般用在异步处理的情况,响应 body 中应该告诉客户端去哪里查看任务的状态 |
204 | No Content | 请求已经处理完成,但是没有信息要返回,经常用在 PUT 更新 |