网络协议常见面试题—答问

时间:2021-10-03 05:05:07

什么是HTTP协议 

       HTTP协议是一种应用层协议,HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和 Web服务器之间的数据交换。我们在使用IE或Firefox浏览网页或下载Web资源时,通过在地址栏中输入,开头的4个字母http就相当于通知浏览 器使用HTTP协议来和host所确定的服务器进行通讯。

一、什么是tcp的三次握手?

网络协议常见面试题—答问

结合图与文字理解。
上图黄色区域是tcp三次握手的过程。
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。
第二次握手:服务器收到syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一个syn包(syn=k), 即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(建立完成)状态,完成三次握手。

当然,需要注意:握手过程中,传输的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传出数据。

理想状态下,tcp一旦建立连接,在通信双方的任何一方,未主动关闭连接之前,tcp连接都将一直保持下去。

然而,断开连接时,服务器和客户端都可以主动发起断开tcp连接的请求,断开过程需要,’四次握手’,如上图红色虚线部分。

所以,你平时听到的什么三次握手连接,tcp 七次握手说的就是它!
———————————————————

 

二、请描述下http连接的特点?
http:超文本传输协议(Hypertext Transfer Protocol),是你平时电脑上网,手机上网,的常用协议之一,当然,http是建立在tcp协议之上的一种应用。

当然最显著的特点是,客户端每次发送的请求,都需要服务器响应,请求结束后,会主动释放连接。从建立连接到关闭连接的过程,成为”一次连接”。

三、TCP和UDP的区别?
TCP是确认包的到达,所以不丢失包(数据),顺序也是好的。
UDP不会确认包的到达,所以可能会丢失数据包,当然顺序也有可能会乱。
除了这些以外:
1. TCP是面向连接(三次握手)的,所以稳定、可靠,那相对就慢了
比如平时的:文件传输,右键,http等用的都是tcp协议
2. UDP是面向无连接的,所以不稳定,但是相对快,实时性高
比如平时:做什么现场直播,视频通话啥的

当然,大家平时用的QQ就是UDP协议(有没有消息错乱的时候)
MSN用的TCP,所以你感觉很卡,很慢

四、简述七层模型与四层模型的区别?列出常见的网络协议?
七层: OSI 开放系统互联参考模型,它是理论的,参考模型
物理层->数据链路层->网络层->传输层->会话层->表示层->应用层
四层: TCP/IP模型 ,现在实际应用的这一层
网际接口层->互联网层->传输层->应用层

物理层: 主要定义的是—传输介质 比如 RJ-45等 这一层没啥协议,都是规范啥的

数据链路层:就是平时的局域网,局域网内的数据传输 MAC层

常见协议:
ARP (Address Resolution Protocal) 地址解析协议,就是 把 IP->MAC(你听过ARP欺骗的)
RARP(Rerserve Address Resolution Protocal) 反向地址转换协议 MAC->IP

      当然他们是没有端口号的,他们表现的是一一对应关系
比如: cmd-> arp -a
网络层: 外网的传输 IP层
常见协议:
IP (Internet Protocol)网际协议
ICMP (Internet Control Message Protocol)网络控制信息协议 (平时的ping)
IGMP (Internet Group Management Protocol)组管理协议
NAT (Network Address Translation) 网络地址转换
传输层:
TCP
UDP
这俩是啥,不介绍了。
应用层:
HTTP 80
HTTPS 443
DNS 53
SMTP 发送邮件端口 25
POP3 收邮件端口 110
FTP 20端口,负责传出数据, 21端口负责发起和建立连接
TELNET 23
DHCP—动态主机配置协议, 客户端请求用的67端口,服务器回应用的是68端口