【计算机网络面试】TCP/IP网络模型有哪几层
参考:
2.1 TCP/IP 网络模型有哪几层? | 小林coding | Java面试学习
以下为自己做的笔记
应用层
专注于为用户提供应用功能,如HTTP、FTP、Telnet、DNS、SMTP等。应用层不关心用户是怎么传输的,当两个设备间的应用需要通信时,应用就把数据传给传输层。
应用层工作在操作系统的用户态,传输层及以下工作在内核态。
传输层
应用层的包传给传输层,传输层是为应用层提供网络支持的。
在传输层有两个协议,TCP和UDP。
TCP全称传输控制协议。TCP比UDP多了很多特性,如:流量控制、超时重传、拥塞控制,这些都是为了数据包更可靠传给对方。
UDP不保证可靠性,但实时性好传输效率高。
太大要分块,丢包只需要重传一个。
数据包到达目的地时,传输层将数据包给应用层时,因为可能有很多个应用在收发数据,要将这些应用区分开来,就是利用端口。
网络层
我们不希望传输层做太多事情,他只要服务好应用层就可以了。实际在错综复杂的网络中找路的工作交给下一层,网络层。
最常用的是IP协议,IP协议将传输层的报文作为数据部分,再加上IP包头组成IP报文。超过MTU要分片。
除了寻址能力,IP协议还有一个重要的能力是路由。两台设备并不是用两条网线连接的,而是通过很多网关、路由器、交换机等众多网络设备连接的,当数据包到达一个节点是,需要用路由算法决定下一步去哪。
寻址是告诉我们往哪个目的地走,路由是找路。
网络接口层
加了IP头部以后,接下来交给网络接口层,在IP头部前面加上MAC头部,并封装成数据帧发送到网络上。
以太网在判断目的地时与IP的方式不同,必须用相匹配的方式,MAC地址就是干这个用的。MAC头部包含了接收方和发送方的MAC地址信息。可以通过ARP协议获取对方的MAC地址。
网络接口层负责在以太网这样的底层网络上传输,工作在网卡这个层次,使用MAC地址标识网络上的设备。
每一层的封装格式: