计算机网络面试知识点(一)

1.TCP/IP协议体系的认知

TCP/IP协议族共分为四层,由底而上分为数据链路层、网络层、传输层、应用层。

(1)数据链路层

数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(以太网、令牌环等)上的传输。不同物理网络具有不同的电气特性。

数据链路层常用协议有ARP协议(地址解析协议)、RARP协议(逆地址解析协议)等。

(2)网络层

网络层实现数据包的选路和转发。WAN(广域网)通常使用众多的分级路由器来连接分散的主机或LAN,因此通常两主机并不直接相连,而是通过多个节点(路由器)连接。网络层的任务就是选择这些中间节点以确定两台主机之间的通信路径。

网络层最核心的协议是IP协议。IP协议根据数据包的目的IP来决定如何投递。如果不能直接发送到目的主机,就为它寻找合适的下一跳路由器,直到到达目标主机。

网络层另外一个重要协议是ICMP协议(因特网控制报文协议)

主要用于检测网络连接。ICMP并非严格意义上的网络层协议,因为它使用处于同一层的IP协议提供的服务(一般来说,上层协议使用下层协议提供的服务)

(3)传输层

传输层为两台主机上的应用程序提供端到端的通信。传输层只关心通信的起始段和目的端,而不在乎数据包的中转过程。传输层为应用程序封装了一条端到端的逻辑通信链路,它负责数据的收发、链路的超时重连等。

TCP协议(传输控制协议)为应用层提供可靠的、面向连接的、基于流的服务。TCP协议使用超时重传、数据确认等方式来确保数据包被正确发送至目的端,因此可靠。使用TCP协议通信的双方必须先建立TCP连接,并在内核中为该链接维持一些必要的数据结构。比如连接的状态、读写缓冲区、诸多定时器等。基于流的数据没有边界影响,它源源不断地从一端流入另一端,发送端可以逐字节的向数据流写入数据,接收端逐个字节将它们读出。

UDP(用户数据报协议)为应用层提供不可靠、无连接、基于数据报的服务。“不可靠”意味着UDP协议无法保证数据从发送端正确的传送到目的端。如果数据中途丢失或者目的端通过数据检验发现数据错误而将其丢弃,则UDP只是通知应用程序发送失败。因为无连接,每次发送数据都要明确接收端的地址。每个UDP数据报都有一个长度,接收端必须以该长度为最小单位将其所有内容一次性读出,否则数据将被截断。

(4)应用层

应用层负责处理应用程序的逻辑。应用层协议很多,比如telnet负责远程登录、OSPF(开放最短路径优先)是一种动态更新路由协议、DNS(域名服务)。应用层可能跳过传输层直接使用网络层提供的服务,通常既可以TCP也可以UDP(比如DNS)

(5)封装与分用

上层协议通过封装使用下层服务。应用程序数据在发送到物理网络之前,将沿着协议栈从上往下依次传递,每层协议都将在上层数据基础上加入自己的头部信息以实现该层功能,这一过程称为封装。

TCP封装后成为TCP报文段、UDP封装后成为UDP数据报,经过IP封装后成为IP数据报。经过数据链路层封装的数据称为帧(Frame)。根据不同传输媒介,帧的类型也不同。帧才是最终在物理网络上传送的字节序列。

当帧到达目的主机时,将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取所需信息,这一过程称为分用。

内容将持续更新哦,希望有所帮助。

计算机网络知识点 文章被收录于专栏

用于针对面试把重点找出来,持续更新

全部评论

相关推荐

迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
评论
3
17
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务