面试突击67:说一下 TCP/IP 协议?以及每层的作用?

TCP/IP 包含四层模型,从上层往下层分别是:应用层、传输层、网络层、数据链路层。有些资料也会说 TCP/IP 是五层模型,所谓的五层模型指的是在数据链路层下面还有一个物理层,而作为软件工程师一般不需要关注物理层,所以通常我们说 TCP/IP 四层模型更多一些。

1.应用层

应用层的作用是负责应用程序间的数据通讯的。不同的网络应用需要不同的应用层协议,比如电子邮件传输 SMTP 协议、文件传输 FTP 协议、网络远程访问 Telnet 协议等等。

常见协议

应用层的常见协议有以下两个:

  • DNS 域名解析协议(Domain Name System,域名系统),DNS 是将域名和 IP 做一个映射,因为在程序间通讯依靠的是 IP,但 IP 地址不方便记忆,而域名方便记忆,所以将二者作为一个 key-value 映射在一起,这样知道了域名置换就能找对与之相对应的 IP 了,这样既能方便用户记忆,同时又能满足程序间的数据通讯。
  • HTTP 协议(HyperText Transfer Protocol,超文本传输协议),互联网上应用最为广泛的一种网络协议。所有的 WWW(万维网) 文件都必须遵守这个标准。

2.传输层

传输层的主要作用是负责两台主机间的数据传输的。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。

注意:应用层和传输层描述的主体对象是不同的,应用层描述的主体是“应用程序间”,而传输层描述的主体是“两台主机间”。其中,一个主机可以包含多个应用程序,所以二者是不同的。

常见协议

传输层的常见协议有以下两个:

  • TCP 协议(Transmission Control Protocol,传输控制协议):提供了稳定的、需要连接的、面向字节流的协议。
  • UDP 协议(User Datagram Protocol,用户数据协议):提供了无连接的、不稳定的、面向数据报的协议。

3.网络层

网络层的作用是负责网络上的地址管理和路由选择的。在数据通讯时,可以选择很多条路径(抵达目的地的),比如从西安到北京,可以选择先从西安 -> 太原 -> 北京,也可以选择从西安 -> 郑州 -> 石家庄 -> 北京,还可以选择从西安 -> 延安 -> 呼和浩特 -> 张家口 -> 北京,究竟选择那一条路呢?这就是网络层负责的。

4.数据链路层

数据链路层的作用是负责设备之间的数据帧的传送和识别的。数据在传输时需要经过多个设备进行数据传输,而数据链路层就是负责相邻设备间的数据传输和识别的。

数据链路层可以完全消除网络层和物理层之间的不同,将数据在链路层进行有效的识别和传输。

5.物理层(可选)

物理层的作用是负责将数据转换成信号,再将信号转换为数据的。转换方法因通讯媒体不同而不同,所以没有特定的协议。

总结

TCP/IP 包含了五层(或四层)模型,从上层往下层分别是:

  • 应用层:负责应用程序间的数据通讯。
  • 传输层:负责两台主机之间的数据传输。
  • 网络层:负责网络地址的管理和路由选择。
  • 数据链路层:负责设备之间的数据帧的传送和识别。
  • 物理层(可选):负责数据和信号间的转换。

相关文章

Java编程-TCP JAVA编程手机软件

1.1. Java的TCP面向连接, 数据安全, 区分服务器端和客户端.TCP分为Socket(客户端)和ServerSocket(服务端)需要分别建立客户端和服务器端客户端和服务端建立连接后,通过S...

Java网络编程---TCP通信 java的tcp通讯协议数据传输

TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信Java对基于TCP协议的网...

4000 字详解TCP超时与重传,看完没收获算我输

专注于Java领域优质技术,欢迎关注作者: tobe 来自:tobe的呓语上一篇介绍 TCP 的文章「TCP 三次握手,四次挥手和一些细节」反馈还不错,还是蛮开心的,这次接着讲一讲关于超时和重传那一部...

用 Wireshark 让你看见 TCP 到底是什么样

前言当你看到这篇文章时,你只能看到已经渲染好的文字和图像,而网络数据的交互对我们来说,却是看不见的,所以学习计算机网络原理的时候就会觉得非常的抽象,这一度让我苦恼。而且网络数据交换真实的模样,到底是不...

Java的UDP和TCP使用方法和案例 java udp socket编程主要用到的两个类

一.UDP1.UDP发送数据2.UDP接收数据bys若直接转换成String进行输出,若发送的数据没占满数组那么大则会输出一堆空字符串二.TCP1.TCP发送数据Socket 里直接用IP地址,这个构...

一文带你搞定TCP挥手 tcpip握手挥手

摘要TCP断开连接TIME_WAITTIME_WAIT优化TCP保活Sokcet编程TCP断开连接TCP断开连接,需要经历四次挥手,通信的双方都可主动断开连接,断开连接通信的双方占用的资源将会被释放。...