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

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

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

1、综述

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

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

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

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

9c25441edd11e0ff04ad8de66109214d.png

在这里插入图片描述

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

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

c550be6ad97e407744592384750f9622.png

在这里插入图片描述

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值