2.5IP与以太网的包的收发操作(上)
-
包的基本知识
-
包:由头部和数据两部分构成的
- 头部:包括目标地址等控制信息
- 数据:包装载的数据
-
TCP/IP包:包括以太网包和IP包
- IP包:IP头部、TCP头部、数据块(用于IP协议)
- MAC头部:以太网控制信息(用于以太网协议)
-
网络中的转发设置:路由器和集线器
-
路由器:根据目标地址判断下一个路由器的位置(按照IP规则传输)
- IP协议:根据目标地址判断下一个IP转发设备的位置
-
集线器:在子网中将网络包传输到下一个路由器(按照以太网规则传输)
- 以太网协议:在子网中将包传输到下一下设备中
-
-
-
包收发操作的概览
-
IP模块如何完成包的收发操作的
-
IP负责的内容:
- MAC头部:以太网用的头部。包含MAC地址
- IP头部:IP用的头部,包含IP地址
-
IP模块将封装好的包发送网卡
-
网卡再将数字信息转化成电信号或者光信号,通过网线发送出去
-
接收的过程跟发送的过程正好相反
-
-
无论收到的包是控制包还是数据包,IP对各种类型的包收发操作都是一样的
-
-
生成包含接收方IP地址的IP头部
-
IP头部格式
-
字段名称 长度(比特) 含义 版本号 4 ip协议版本号,目前使用的是版本4 头部长度(LHL) 4 IP头部的长度,可选字段可导致头部长度变化 服务类型(ToS) 8 表示包传输的优先级 总长度 16 表示IP消息的总长度 ID号 16 用于识别包的编号 标记(Flag) 3 该字段有3个比特,其中两个比特有效, 是否允许分片 当前包是否为分片包 分片偏移量 13 表示当前包的内容为整个IP消息的第几个字节开始的内容 生产时间(TTL) 8 表示包的生存时间,避免网络回环,没经过一个路由就会减1,减到0这个包就视为丢弃 协议号 8 表示协议的类型 TCP:06 UDP:17 ICMP:01 头部校验和 16 用于检测错误的 发送方IP地址 32 网络包发送方的IP地址 接收方IP地址 32 网络包接收方的IP地址 -
IP头部视为“接收方IP地址”填写通信对象的IP地址,发送方IP地址需要判断发送使用的网卡,并填写该网卡的IP地址。
-
- 根据路由表判断网络包交给哪个网卡
-
对嵌套字中记录的目标地址与路由表中左侧Network Destination进行比较
-
右侧第二列Interface:表示网卡等网络接口,将包发发送给通信对象
-
右侧第三列Gateway:表示下一个路由器的IP地址,该IP地址的路由器会将包转发到目标地址
- 如果Interface和Gateway的IP地址相同,就不需要路由器转发,直接发给目标的IP地址
-
左侧Network Nestination和Netmask都是0.0.0.0,表示默认网关,其他条目无法匹配时,自动匹配这一行
-
生产以太网用的MAC地址
-
在以太网中判断网络包的目的是与TCP/IP的方式不同
-
MAC头部:以太网用的头部,包含了接收方和发送方的MAC地址等信息
-
MAC头部字段 长度 含义 接收方MAC地址 48 网络包接收方的MAC地址,(在局域网中使用这一地址来传输网络包) 发送方MAC地址 48 网络包发送方的MAC地址,(接收方通过他来判断是谁发送的网络包) 以太类型 16 0000-05DC:IEEE 802.3 0800 :IP协议 0806 :ARP协议 86DD :IPv6
-
- IP模块根据路由表Gateway栏的内容判断应该把包发给谁
网友评论