网络是怎么连接的:第二章下(下)IP与以太网的包收发操作

全书基于一个简单场景:用户向浏览器输入一条URL到响应返回,一条网络请求的生命周期。
在这里插入图片描述

全书分六部分:

  1. 应用层客户端生成HTTP,委托给操作系统的协议栈
  2. 协议栈(TCP/IP模块)调用网卡驱动生成电信号
  3. 网卡如何通过路由器到达用于接入互联网的路由器
  4. 互联网内部接力传输
  5. 到达web服务器之后先通过防火墙的检查
  6. web服务器是如何收取数据的

第二章主要介绍,操作系统中的协议栈和网卡是如何将应用程序的消息发给服务器的:

  1. 创建套接字
  2. 连接服务器
  3. 收发数据
  4. 从服务器断开连接并删除套接字
  5. IP与以太网的包收发操作
  6. 用UDP收发数据的操作

本文介绍第五章节,IP与以太网的包收发操作。

0. 摘要

收发全流程:

接收:
网卡 --> 网卡驱动 --> TCP/IP协议栈
网卡结构:缓冲区 | MAC模块 | PHY(MAU)

1. PHY(MAU)接收电信号,转成通用格式转交给MAC模块
2. 信号的开头是报头,通过报头的波形同步时钟,遇到起始帧分界符后将后面的信号转成数字信号。
3. 到达信号的末尾检查FCS,校验失败则丢弃
4. 检查MAC地址是否一致,不一致则丢弃
5. 地址一致放入缓冲区,MAC模块工作完成
6. 网卡通知计算机收到一个包,通知机制--中断信号
7. 计算机收到中断信号调用中断处理程序
8. 中断处理程序调用网卡驱动
9. 网卡驱动会从缓冲区取出网络包,交给TCP/IP协议栈
10. 检查IP头部,确认格式是否正确。
11. 查看接收方IP地址是否与网卡IP一致,不一致通过ICMP消息将错误通知发送方
12. 如果IP一致根据头部的分片偏移量字段判断是否需要分片重组,至此IP模块结束了,接下来包会交给TCP模块。
13. TCP模块根据接收方IP、端口,发送方IP、端口查找对应的套接字。
14. 知道套接字,结合套接字和TCP头部的控制信息,执行相应的操作。 
发送:
1. TCP模块创建TCP头部,委托给IP模块
2. IP模块创建IP头部,MAC头部
3. IP模块委托给网卡
4. 网卡将二进制流转成光电信号继续传输。

IP地址实际是分配给网卡的
MAC地址是网卡生产时写入ROM中的值
只要有接收方MAC地址发送方MAC地址以太网类型这三个特性就算是以太网
ARP协议的主要功能是将IP地址解析为MAC地址
路由表根据IP地址判断转发目标

1.什么是包

包是网络七层模型中网络层的传输数据单元,又称网络包。包结构:头部+数据。头部包含目的地址等控制信息,可以将头部理解为快递的面单,数据则是包裹中的货物

包传输流程:

  1. 发送方创建包,将包发往最近的网络转发设备。
  2. 转发设备会根据头部中的信息判断下一个转发设备。转发过程需要一张记录地址的表
  3. 经过多次转发到达接收方网络设备。

发送方和接收方统称终端节点,转发设备为中间节点。

创建包:生成具有正确控制信息(目的地址)的的头部,附上要发送的数据
网络设备中的表是什么?记录每个地址发送的方向,按照头部中的目的地址在表中查询。

TCP/IP包基于包发展而来,TCP/IP五层模型基于网络七层模型发展而来。
TCP/IP包封装了应用层,传输层,网络层,数据链路层。头部封装了网络层和数据链路层,数据封装了应用层和传输层。

举例:
数据链路层:以太网
网络层:IP(固定)
传输层:TCP(固定)
应用层:HTTP

TCP/IP包头部包含MAC头

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wzyAcyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值