【面试题集】Tcp/Ip协议分层及详解
概述
首先,网络分层协议到底是几层?有人说七层,有人说四层。
其实,这样说都没错,至于有人说五层,那是瞎扯的,约定俗成的东西是你说5层就5层么?
网络七层协议是OSI是一个开放性的通信系统互连参考模型;而基于TCP/IP的参考模型将协议分成四个层次。
注意,这里说的是基于TCP/IP的参考模型将协议是四层,而且七层指的是OSI网络分层协议。基于TCP/IP的参考模型已经说明自己是TCP/IPl ,而且将表示层和会话层合并,所以看起来就是四层。下面显示两者的不同:
OSI七层网络模型 | TCP/IP四层概念模型 | 对应网络协议 | 备注说明 |
---|---|---|---|
应用层(Application) | 应用层 | TELNET,HTTP,FTP,NFS,SMTP | 与其它计算机进行通讯的一个应用,对应应用程序的通信服务的。 |
表示层(Presentation) | 加密,ASCII | 定义数据格式及加密。 | |
会话层(Session) | RPC,SQL,SOCKET | 定义了如何开始、控制和结束一个会话 | |
传输层(Transport) | 传输层 | TCP, UDP | 端到端的逻辑通信链路,负责数据的收发、链路的超时重连 |
网络层(Network) | 网络层 | IP, ICMP, ARP, RARP, AKP, UUCP | 对端到端的网络连接进行定义 |
数据链路层(Data Link) | 网络接口层 | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP | 定义了在单个链路上如何传输数据。 |
物理层(Physical) | IEEE 802.1A, IEEE 802.2到IEEE 802.11 | 传输介质的标准 |
总结一下,就是:
- 机器a发送http数据包data机器b,data先穿上http的外衣;
- http数据再增加一系列的控制;
- 再加上tcp的报文头;
- 再加上ip报文头;
- 这时候就形成了ip报文,就可以按照链路层协议在网线/无线传输了;
- 路由器收到一个报文,会解析成ip报文,看下目的ip是给谁了,根据路由规则,转发到相应的路由器;
- 最后路由器找到了机器b,把报文给b,b按照七层协议一层层剥开,最后发现是个http报文,按照http再剥开,它就是机器a要跟你说的悄悄话。
图例
OSI 七层:
TCP/IP 四层: