- TCP/IP四层协议分别是什么,什么功能,使用什么协议
- 各协议的原理、特点
- 路由转发机制(IP路由)
- IP协议特点的描述,为什么
- IP路由转发机制?
- TCP协议特点、TCP与UDP比较
- 三次握手、四次挥手;状态转移图
1.TCP/IP四层协议是什么,简单描述,各层使用哪些协议
应用层:为应用程序提供应用接口,主要协议由Telnet(远程连接)、DNS、ping(检查网络连接)
传输层:为两台主机之间提供端到端的连接,主要协议有TCP、UDP
网络层:数据包的选路和路由转发,主要协议有IP、ICMP
数据链路层:实现网卡接口的网络驱动程序,主要协议有ARP、RARP
2.各协议工作原理
1.DNS(域名解析)
域名系统。将域名转换为IP地址
查询IP过程:客户端发送一个地址解析请求,本地域名服务器接受这个请求,并在本地缓存查询,如果有这个记录,就返回查询到的结果,否则将这个请求发送到他所知道的其他的域名地址;
本地域服务器向上一步返回的域地址发送这个地址解析请求,若某个域名缓存中存在这个域名,返回给本地服务器,若不存在,则递归查询,将请求发送给它所知道的其他域名地址,直到找到;
找到目标IP之后,本地域名缓存会保存这个记录并返回给客户端。
2.TCP & UDP
- TCP提供有连接、基于流、可靠的服务;UDP提供无连接、基于数据报、不可靠的服务
- TCP有连接的服务:通信双方在传送数据时必须保证同一条连接上,即一对一通信
- 基于流:发送发发送数据的次数和接收端接收数据的次数可以不保持一致,发送端将数据首先保存到发送缓冲区,由接收端读取数据;而UDP是将发送端发送的每一个数据封装成一个数据报,发送给接收端,接收端必须及时接收这个数据报,否则会丢包。
- 可靠的链接:TCP通信双方采用发送应答、超时重传机制、并将发送的数据进行重组排序,即每发送一个数据必须收到对方的响应才认为这个数据已发送成功;发送端每发送一个数据都会启动一个定时器,若到时间没有接收到应答信息,则认为发送失败,重新发送;接收端将接收到的信息重新排序整理再交给应用层。而UDP必须由上层协议自己保证数据的可靠性。
3.ARP协议(地址解析):能够找到任意网络地址的MAC地址
源主机向自己所在的网络域广播一个ARP请求,请求信息包括源主机物理地址、IP地址,目标主机IP地址(我的身份证是MAC_A,我的名字是IP_A,谁的名字叫IP_B,请告诉我),该网络上所有主机都能收到这个ARP请求,但只有目标主机可以发送ARP应答,应答信息包括目标主机、源主机MAC地址,目标主机IP地址(我的身份证是MAC_A,发送给MAC_B,我的名字是IP_B,我的身份证是MAC_B)
4.IP协议的特点是什么
IP协议提供无连接 、无状态、不可靠的的服务。通信双方不长久保持通信状态,数据的发送和接收不保证同步;不保留通信双方的任何信息,所以在发送数据时,必须携带主机信息;不保证数据传输的可靠性,必须由上层协议保证信息的顺序和可靠性。
5.路由转发机制
源主机将IP数据报发出,若目标主机与源主机在同一个网络中,即在同一个网络中可以找到目标IP,那么直接交付该数据报到目标主机;若不存在,则需要间接交付,即搜索匹配的目标网络IP,可借助多台路由器发送该数据报到目标主机
6.三次握手及状态转移
- 三次握手
连接请求一般只有客户端可以发起,客户端发送一个SYN连接请求,服务器端接收到这个请求给出一个ACK应答,同时发送一个SYN请求,客户端接收到ACK+SYN之后向服务器端发送ACK确认报文,服务器与客户端连接建立成功。 - 状态转移
客户端和服务器均处于closed状态,客户端发送SYN请求之后,进入SYN_SENT状态(syn发送状态);服务器接收到这个请求后发送一个ACK确认报文同时发送SYN连接请求,并进入SYN_RECV状态;客户端接收到这个报文发送一个ACK确认报文,至此,服务器端的连接建立,进入ESTABLISHED状态;服务器接收到确认报文之后同样进入ESTABLISHED状态,双方建立连接。
7.四次握手
- 四次握手的过程
通信双方都可以主动发起断开请求。发送方发送FIN断开请求,接收端接收后回复一个ACK确认报文,这个时候发送端不能再发送数据到接收端,而接收端仍然可以发送数据给接收端;接收端发送一个FIN请求,发送端回复一个ACK报文,通信断开。 - 状态转移:
通信双方处于ESTABLISED状态,A发送一个FIN请求,状态转换为FIN_Wait1,B接收到这个这个请求后发送一个ACK确认,并进入Closed_Wait状态(被动关闭),A的状态也变为FIN_Wait2,A向B的连接断开,但是B仍然可以发送消息给A;B发送一个FIN断开请求后,状态改为Last_ACK(等待最后确认),A收到这个FIN之后,会发送一ACK确认报文,等待TIME_WAIT时间状态关闭(CLOSED),B接收到这个ACK确认报文后立即断开连接,进入CLOSED状态。