当前位置: 首页 > 后端技术 > Java

专访突击67:说说TCP-IP协议?每一层做什么?

时间:2023-04-02 01:24:33 Java

TCP/IP包括四层模型,从上层到下层:应用层、传输层、网络层和数据链路层。有的资料还说TCP/IP是五层模型。所谓五层模型就是在数据链路层下面还有一个物理层。作为软件工程师,一般不需要关注物理层,所以我们通常说的TCP/IP有较多的IP四层模型。1.应用层应用层的作用是负责应用程序之间的数据通信。不同的网络应用需要不同的应用层协议,如用于邮件传输的SMTP协议、用于文件传输的FTP协议、用于网络远程访问的Telnet协议等。常用协议应用层常用的协议有两种:DNS域名解析协议(DomainNameSystem,域名系统),DNS是域名和IP的映射,因为程序之间的通信依赖IP,但是IP地址不方便内存,而域名好记,所以把两者映射在一起做为key-value,这样知道域名替换后就可以找到对应的IP,既方便用户记忆,又满足程序间数据通信。HTTP协议(HyperTextTransferProtocol,超文本传输??协议),Internet上使用最广泛的网络协议。所有WWW(万维网)文档都必须符合此标准。2.传输层传输层的主要功能是负责两台主机之间的数据传输。如传输控制协议(TCP),它可以保证数据可靠地从源主机发送到目的主机。注意:应用层和传输层描述的主体对象是不同的。应用层描述的对象是“应用程序之间”,而传输层描述的对象是“两台主机之间”。其中,一个主机可以包含多个应用,所以两者是有区别的。常用协议传输层有两种常用协议:TCP协议(TransmissionControlProtocol,传输控制协议):提供稳定的、需要连接的、面向字节流的协议。UDP协议(UserDatagramProtocol,用户数据协议):提供一种无连接的、不稳定的、面向数据报的协议。3.网络层网络层的作用是负责网络上的地址管理和路由选择。在数据通信中,可以选择多种路径(到达目的地),比如从西安到北京,可以选择西安->太原->北京,也可以选择西安->郑州->石家庄->北京,也可以选择从西安->延安->呼和浩特->张家口->北京,你应该选择哪个?这就是网络层负责的事情。4.数据链路层数据链路层的作用是负责设备间数据帧的传输和识别。数据在传输时,需要经过多个设备进行数据传输,数据链路层负责相邻设备之间的数据传输和识别。数据链路层可以完全消除网络层和物理层的区别,在链路层有效地识别和传输数据。5.物理层(可选)物理层负责将数据转化为信号,再将信号转化为数据。转换方法因通信介质而异,因此没有特定的协议。总结TCP/IP包括一个五层(或四层)模型,从上层到下层:应用层:负责应用程序之间的数据通信。传输层:负责两台主机之间的数据传输。网络层:负责网络地址管理和路由选择。数据链路层:负责设备间数据帧的传输和识别。物理层(可选):负责数据和信号之间的转换。判断是非在自己,名誉在别人,得失在人数。公众号:Java面试真题分析面试合集:https://gitee.com/mydb/interview