lesson5 简单网络连接-IP层的功能

前面讲了TCP协议的一些特性,下面我们来讲下IP层的一些知识。

1.包的基本知识

包是由头部和数据两部分组成的,头部是一些控制信息的组合,每个在网络上传输的包都是完整的。一个完整的网络包的基本结构如下:

在这里插入图片描述
数据包在网络上传输时,需要经过转发设备的转发操作,从一个转发设备到达另一个转发设备,最终到达服务器所在的局域网,完成数据的传送过程。
在这里插入图片描述
这里的转发设备有很多类型,包括路由器(工作在IP层)、交换机、集线器(工作在以太网层)等等。

在IP模块,会为网络包添加IP头和MAC头。这两个头部分别具有不同的功能:

  • 首先,发送方将包的目的地,也就是要访问的服务器的IP地址写入IP头部中。IP协议就根据这个地址查找包的传输方向,从而找到下一个路由器的位置。
  • 接下来,IP协议会委托以太网协议将包传输出去。这时,IP协议会查找下一个路由器的以太网地址(MAC地址),并将这个地址写入MAC头部中。

数据包在传输过程中会经过集线器,集线器里也有一张表,可根据以太网头部中记录的目的信息查找中相应的传输方向。

在到达一个路由器时,路由器根据路由表查找下一个路由的位置,并将其MAC地址写到MAC头部。
在这里插入图片描述
2.包收发操作概览

尽管我们说IP模块负责将包发给对方,但实际上将包从发送方传输到接收方的工作是由集线器、路由器等网络设备来完成的,因此IP模块仅仅是整个包传输过程的入口而已。

在收到TCP委托后,IP模块会将包的内容当作一整块数据,在前面加上包含控制信息的头部,包括IP头和MAC头两部分。其中MAC头包含通过以太网的局域网将包传输至最近的路由器所需的控制信息。

IP模块在封装好数据后,将包发送给网卡。网卡会将这些数字信息转换为电信号或者光信号,并通过网线(或光线)发送出去,然后这些信号就会到达集线器、路由器等转发设备,再由转发设备一步一步地送达接收方。
在这里插入图片描述
在这个过程中,IP模块的包收发操作是一致的,并不会因为是TCP包还是UDP包而区别对待。当然,IP模块也不关心TCP的操作阶段,对于包的乱序和丢失也一概不知。总之,IP的职责就是将委托的东西打包送到对方手里,或者是将对方送来的包接收下来。

IP头部包含的信息如下图,其中最重要的内容就是IP地址,它表示这个包应该发到哪里去。这个地址是由TCP模块告知的,而TCP又是在执行连接操作时从应用程序那里获得的。
在这里插入图片描述这里有个误区,就是很多同学认为这个IP地址是分配给计算机的,但实际上是分配给网卡的,有几块网卡,就有几个IP地址。

要想知道数据包具体是从哪个网卡被发出去的,就要使用该网卡对应的IP地址。在cmd中执行命令:route print,可以查看计算机中的路由信息:
在这里插入图片描述
3.生成以太网用的MAC头部

IP头只能在IP层使用,到了物理层,就必须要使用MAC头。结构如下:

在这里插入图片描述
这里发送方的MAC地址,就是发送方网卡对应的MAC地址,而接收方的MAC地址,起初并不是服务器的MAC地址,而是发送方所在局域网的路由器的MAC地址(如果发送方和接收方都是在同一个局域网就会是接收方的MAC地址)。在查询下一个路由器,就会替换成下一个路由器的MAC地址。

这里就需要使用ARP协议来查询目标路由器的MAC地址了。ARP协议使用广播的模式,将包发送给连接在同一个局域网中的所有设备,寻找IP对应的MAC地址。如果对方和自己在同一个子网中,那么经过ARP请求就能得到对应的MAC地址。然后,我们将这个MAC地址写入MAC头部。有种叫做"缓存"的东西对ARP来说也是具备的,叫做ARP缓存,为了避免网络上充斥大量的ARP包。

IP模块到此就完成了所有工作,然后将包交给网卡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值