判断ip国内外地址_探索协议栈和网卡——IP包与以太网的包收发操作

1、包的基本知识:包是由头部和数据两部分构成的。头部包含目的地址等控制信息;后面就是委托要发送给对方的数据。首先,发送方的网络设备会负责创建包。接下来,包会被发往最近的网络转发设备。当到达最近的转发设备之后,转发设备会根据头部中的信息判断接下来应该发往哪里。这个过程需要用到一张表,这张表里记录了每个地址对应的发送方向,也就是按照头部里记录的目标地址在表里进行查询,并根据查到的信息判断接下...
摘要由CSDN通过智能技术生成

1、包的基本知识:

包是由头部和数据两部分构成的。头部包含目的地址等控制信息;后面就是委托要发送给对方的数据。

首先,发送方的网络设备会负责创建包。接下来,包会被发往最近的网络转发设备。当到达最近的转发设备之后,转发设备会根据头部中的信息判断接下来应该发往哪里。这个过程需要用到一张表,这张表里记录了每个地址对应的发送方向,也就是按照头部里记录的目标地址在表里进行查询,并根据查到的信息判断接下来应该发往哪个方向。接下来,包在向目的地移动的过程中,又会到达下一个转发设备,然后又会按照同样的方式被发往下一个转发设备。

在之前的文章中我们讲过子网的概念,还讲过网络中有路由器和集线器两种不同的转发设备,它们在传输网络包时有着各自的分工。

(1)路由器根据目标地址判断下一个路由器的位置。

(2)集线器在子网中将网络包传输到下一个路由。

集线器是按照以太网规则传输包的设备,而路由器是按照IP规则传输包的设备,因此我们也可以作如下理解。

(1)IP协议根据目标地址判断下一个IP转发设备的位置。

(2)子网中的以太网协议将包传输到下一个转发设备。

TCP/IP包包含两个头部,分别是MAC头部(用于以太网协议)和IP头部(用于IP协议)。

这两个头部分别具有不同的作用。首先,发送方将包的目的地,也就是要访问的服务器的IP地址写入IP头部中。这样一来,我们就知道这个包应该发往哪里,IP协议就是可以根据这一地址查找包的传输方向,从而找到下一个路由器的位置。接下来,IP协议委托以太网协议将包传输过去。这时,IP协议会查找下一个路由器的以太网地址(MAC地址),并将这个地址写入MAC头部中。这样一来,以太网协议就知道要将这个包发到哪个路由器上了。

当网络包经过集线器时,集线器是根据以太网协议工作的设备。为了判断包接下来应该向什么地方传输,集线器里有一张表(用于以太网协议的表),可根据以太网头部中记录的目的地信息查出相应的传输方向。

接下来,包会到达下一个路由器。路由器中有一张IP协议的表,可根据这张表以及IP头部中记录的目的地信息查出接下来应该发往哪个路由器。为了将包发到下一个路由器,我们还需要查出下一个路由器的MAC地址,并记录到MAC头部中。这样,网络包就又被发往下一个节点了。

IP和以太网的分工看似有点复杂,其实这样设计是由原因的。其中以太网的部分也可以替换为其他的东西,例如无线局域网、ADSL、FTTH等。

2、包收发操作概览:

包收发操作的起点是TCP模块委托IP模块发送包的操作。这个委托的过程就是TCP模块在数据块的前面加上TCP头部,然后整个传输给IP模块,这部分就是网络包的内容。与此同时,TCP模块还需要指定通信对象的IP地址。

IP模块会添加IP头部和MAC头部这两种头部,加上这两个头部之后,一个包就封装好了,这些就是IP模块负责的工作。

接下来,封装好的包会被交给网络硬件(统称网卡),例如以太网、无线局域网等。传递给网卡的网络包是由一连串0和1组成的数字信息,网卡会将这些数字信息转换为电信号或光信号,并通过网线(或光纤)发送出去。接收包的过程于此相反,信息先以电信号的形式从网线传输进来,然后由网卡将其转换为数字信息并传递给IP模块。接下来,IP模块会将MAC头部和IP头部后面的内容传递给TCP模块。

TCP模块在收发数据时分为好几个阶段,并且每个阶段都设计了实现相应功能的网络包,但IP的包接收操作都是相同的,IP模块会将TCP头部和数据看作一整块二进制数据,在执行操作时并不关心其中的内容。总之,IP的指责就是将委托的东西打包送到对方手里,或者是将对方送来的包接收下来,仅此而已。

3、生成包含接收方IP地址的IP头部:

IP头部包含的内容如下表所示(IP头部为20字节):

字段名称

长度(含义)

含义
版本好 4 IP协议版本号,目前使用的是版本4
头部长度(IHL) 4 IP头部长度。可选字段可导致头部长度发生变化,因此这里需要指定头部长度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值