区块链技术博客
www.b2bchain.cn

Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)求职学习资料

本文介绍了Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我将网络模型放在了《网络编程系列》的第一篇,是因为它是整个网络知识体系的根基。

作为一个网络常识,虽然简单,但面试官可能会将之作为开篇方式提问,然后他会借此展开深入追问其他的网络知识,所以还是有必要复习下。

    • 1、综述
    • 2、TCP/IP四层网络模型
      • 2.1、网络接口层
      • 2.2、网络层(网际层)
      • 2.3、传输层

1、综述

计算机网络是一个非常庞大且复杂的系统,所以在设计之初就严格遵守着「分层」的设计理念。

主流网络分层体系结构有两种:

OSI(Open Systems Interconnection Reference Model,开放系统互联参考模型),就是常说的七层网络模型。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网协议)四层网络模型,也有人愿意归为 “五层网络模型”,以其中最重要的 TCP 协议和 IP 协议命名。

Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)

在这里插入图片描述

值得一提的是,由国际化标准组织制定的 OSI 模型,本来是最应该在全球范围内推广的网络模型,不过因为 OSI 的设计过于理想不合实际,再加上当时应用 TCP/IP 模型的因特网(Internet)已经覆盖了全球大部分地区。种种原因,导致 OSI 并没有取得市场化的成功,仅仅是获得了理论上的研究成果。而 TCP/IP 模型则被作为了事实上的国际标准

还有一种分层体系是五层。

Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)

在这里插入图片描述

2、TCP/IP四层网络模型

目标是了解各层的作用与相应的协议。

2.1、网络接口层

网络访问层的功能包括IP地址与物理地址的映射,以及将上一层的IP报文封装成帧

基于不同类型的网络接口,网络访问层定义了与物理介质的连接。网络访问层包括了数据链路层的地址,因为可以看到源MAC和目标MAC。它是TCP/IP协议的最底层,负责接收从网络层传来的IP数据报,并且将IP数据报拆包之后通过底层物理网络发出去,或者从底层的物理网络上接收物理帧,解封装出IP数据报,交给网际层处理。

数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(ReverseAddress Resolve Protocol,逆地址解析协议)。它们实现了IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)之间的相互转换。

网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转化成其物理地址,才能使用数据链路层提供的服务,这就是ARP协议的用途。

RARP协议仅用于网络上的某些无盘工作站。因为缺乏存储设备,无盘工作站无法记住自己的IP地址,但它们可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自身的IP地址。运行RARP服务的网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。

2.2、网络层(网际层)

网络层最核心的协议是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP协议使用逐跳(hop by hop)的方式确定通信路径。

网络层另外一个重要的协议是ICMP协议(Internet Control Message Protocol,因特网控制报文协议)。它是IP协议的重要补充,主要用于检测网络连接

2.3、传输层

传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。

我将网络模型放在了《网络编程系列》的第一篇,是因为它是整个网络知识体系的根基。

作为一个网络常识,虽然简单,但面试官可能会将之作为开篇方式提问,然后他会借此展开深入追问其他的网络知识,所以还是有必要复习下。

    • 1、综述
    • 2、TCP/IP四层网络模型
      • 2.1、网络接口层
      • 2.2、网络层(网际层)
      • 2.3、传输层

1、综述

计算机网络是一个非常庞大且复杂的系统,所以在设计之初就严格遵守着「分层」的设计理念。

主流网络分层体系结构有两种:

OSI(Open Systems Interconnection Reference Model,开放系统互联参考模型),就是常说的七层网络模型。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网协议)四层网络模型,也有人愿意归为 “五层网络模型”,以其中最重要的 TCP 协议和 IP 协议命名。

Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)

在这里插入图片描述

值得一提的是,由国际化标准组织制定的 OSI 模型,本来是最应该在全球范围内推广的网络模型,不过因为 OSI 的设计过于理想不合实际,再加上当时应用 TCP/IP 模型的因特网(Internet)已经覆盖了全球大部分地区。种种原因,导致 OSI 并没有取得市场化的成功,仅仅是获得了理论上的研究成果。而 TCP/IP 模型则被作为了事实上的国际标准

还有一种分层体系是五层。

Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)

在这里插入图片描述

2、TCP/IP四层网络模型

目标是了解各层的作用与相应的协议。

2.1、网络接口层

网络访问层的功能包括IP地址与物理地址的映射,以及将上一层的IP报文封装成帧

基于不同类型的网络接口,网络访问层定义了与物理介质的连接。网络访问层包括了数据链路层的地址,因为可以看到源MAC和目标MAC。它是TCP/IP协议的最底层,负责接收从网络层传来的IP数据报,并且将IP数据报拆包之后通过底层物理网络发出去,或者从底层的物理网络上接收物理帧,解封装出IP数据报,交给网际层处理。

数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(ReverseAddress Resolve Protocol,逆地址解析协议)。它们实现了IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)之间的相互转换。

网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转化成其物理地址,才能使用数据链路层提供的服务,这就是ARP协议的用途。

RARP协议仅用于网络上的某些无盘工作站。因为缺乏存储设备,无盘工作站无法记住自己的IP地址,但它们可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自身的IP地址。运行RARP服务的网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。

2.2、网络层(网际层)

网络层最核心的协议是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP协议使用逐跳(hop by hop)的方式确定通信路径。

网络层另外一个重要的协议是ICMP协议(Internet Control Message Protocol,因特网控制报文协议)。它是IP协议的重要补充,主要用于检测网络连接

2.3、传输层

传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。

我将网络模型放在了《网络编程系列》的第一篇,是因为它是整个网络知识体系的根基。

作为一个网络常识,虽然简单,但面试官可能会将之作为开篇方式提问,然后他会借此展开深入追问其他的网络知识,所以还是有必要复习下。

    • 1、综述
    • 2、TCP/IP四层网络模型
      • 2.1、网络接口层
      • 2.2、网络层(网际层)
      • 2.3、传输层

1、综述

计算机网络是一个非常庞大且复杂的系统,所以在设计之初就严格遵守着「分层」的设计理念。

主流网络分层体系结构有两种:

OSI(Open Systems Interconnection Reference Model,开放系统互联参考模型),就是常说的七层网络模型。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网协议)四层网络模型,也有人愿意归为 “五层网络模型”,以其中最重要的 TCP 协议和 IP 协议命名。

Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)

在这里插入图片描述

值得一提的是,由国际化标准组织制定的 OSI 模型,本来是最应该在全球范围内推广的网络模型,不过因为 OSI 的设计过于理想不合实际,再加上当时应用 TCP/IP 模型的因特网(Internet)已经覆盖了全球大部分地区。种种原因,导致 OSI 并没有取得市场化的成功,仅仅是获得了理论上的研究成果。而 TCP/IP 模型则被作为了事实上的国际标准

还有一种分层体系是五层。

Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)

在这里插入图片描述

2、TCP/IP四层网络模型

目标是了解各层的作用与相应的协议。

2.1、网络接口层

网络访问层的功能包括IP地址与物理地址的映射,以及将上一层的IP报文封装成帧

基于不同类型的网络接口,网络访问层定义了与物理介质的连接。网络访问层包括了数据链路层的地址,因为可以看到源MAC和目标MAC。它是TCP/IP协议的最底层,负责接收从网络层传来的IP数据报,并且将IP数据报拆包之后通过底层物理网络发出去,或者从底层的物理网络上接收物理帧,解封装出IP数据报,交给网际层处理。

数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(ReverseAddress Resolve Protocol,逆地址解析协议)。它们实现了IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)之间的相互转换。

网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转化成其物理地址,才能使用数据链路层提供的服务,这就是ARP协议的用途。

RARP协议仅用于网络上的某些无盘工作站。因为缺乏存储设备,无盘工作站无法记住自己的IP地址,但它们可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自身的IP地址。运行RARP服务的网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。

2.2、网络层(网际层)

网络层最核心的协议是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP协议使用逐跳(hop by hop)的方式确定通信路径。

网络层另外一个重要的协议是ICMP协议(Internet Control Message Protocol,因特网控制报文协议)。它是IP协议的重要补充,主要用于检测网络连接

2.3、传输层

传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Linux C/C++面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们