SciTech-EECS-Computer Network:OSI:

链路:mac地址+集线器/交换机⇒子网⇒网络层:ip地址+路由器+

OSI: 链路:mac地址+集线器/交换机⇒子网⇒网络层:ip地址+路由器+

  • 真实的"电路级packet交付"全都是委托给"Data Link Layer"实际交付/传输。

    • 上层(包括 Network Layer),全都是组织汇编好"数据包/bitstream(电路级信号序列)"
    • Data Link Layer: 只关心 用 which port(cable, 一个或全部) 发送/传输 packet bitstream(二进制电信号序列),与"Gateway(网关, 常有 交换机)的配置";
      • 在网状态: 本机 配置有"Mask和Gateway的IP"状态,
      • 直连状态: 用"双机直连网线(RJ45对换Tx与Rx)"状态,
    • Gateway:
    • 局域网(Local Network)以 Switcher+Router 构建网络拓扑.
  • 分“Electronic Signal Stream”和 “Network Packet Stream”两个视角更容易理解:
    • Electronic Signal Stream:

      • 发出Network Packet Stream时,

        1. 发出Process将 packets 转换成 bitstream 先,
        2. 将 Packet Stream 转换成的 bitStream 用 OS(操作系统)的send/recv系统调用收发;
        3. OS 将根据网络收发的系统调用函数, 选取正确的Network Interface执行;
        4. Network Interface(包括网卡/虚拟网卡)用Cable/Wireless链接入网的"Digital/Analog Circuits"收发bitstream;
      • 收到Network Packet Stream时,
        1. 先收到的其实是"Digital/Analog Circuits"收到的bitstream;

          实际上是由 网卡(Network Card)这个硬件设备接收/发出bitstream;
        2. 接收完转换成bitstream存在(Network Card)设备的缓存,并触发硬件中断系统调用.
        3. OS(操作系统)的Networking(网络模块及其协议栈)将透明的把bitstream解译出data packet;

          data packet: 有packet的Class(类型, 如tcp/udp/other), port(端口, 如udp/tcp/other)
        4. OS查PID(接收进程的进程号:) OS有全部data packet的"钩子和管理表(动态表)", 用Class+port反查得接收方PID.
        5. OS(操作系统)的Process Scheduler(进程调度器)会将接收data packet(数据包)的Process(进程)调度入队.
        6. 接收Process(进程号为PID)处理包data packet.

PC (Host A)

配置:

  • 端口:

    网线端口: Physical 的 cable 网线端口,

    当插上的"网线"连接上"交换机/路由器",网口的指示灯会点亮;

    IP的port: 特指 ip/udp的分发port

  • 子网掩码:

    1.组网: 可自定义选择 subnet(子网)的范围;

    2.单机: 判断,数据链路层是否发送给路由器;

  • 网关地址(不在同一subnet时,发包给的ip):

    1.组网: 可自定义配置网关(路由器)的IP地址;

    2.单机: 确定, 数据链路层发送的目标mac/ip;

ARP 缓存表(PC 和 Router都有ARP表):

子网 mac⇔ip表映射;

  1. PC上有始空 ARP 表, "入网"时先用一轮ARP预热缓存.

    缓存全subnet(子网)的arp, 包括网关(路由器)的.

    • 同subnet: 真机mac+目标ip,用Switcher发;
    • 非subnet: 网关mac+目标ip,用Router发.
  2. arp协议(mac地址解析)

    1.网络层 发packet出去 时,只知 目标ip addr.

    2.链路层 发packet必先arp查得 ip⇒mac

    3.路由器: 神奇能力"根据目标ip改目标mac"

Switcher: 端口(Physical 的 cable 网线端口)

1.mac地址表, 子网 mac⇔port(cable)表映射:

  • 查得, 点射给 "目标"port(cable), 只由目标host(mac addr)链接的port(cable)发出.
  • 查无, 广播给"全部"port(cable), 包括任何一个port(cable)可能链接有的Router/Switcher

Router: 端口(Physical 的 cable 网线端口)

  1. ip路由表, 本域: ip⇔port(cable)表映射:
  2. 神奇的“根据目标ip改目标mac”





常用网络协议 的 依赖联系

SciTech-EECS-Computer Network:OSI: 链路:mac地址+集线器/交换机⇒子网⇒网络层:ip地址+路由器+的更多相关文章

  1. 网络层-IP地址

    以下内容是IPv4 IP地址长度32位,Java里面一个int的长度,总共分为5类IP地址 1:分类编址 A类IP地址0开头:           A类有31个位置可以变化,总数是2^31个, [(0 ...

  2. PHP获取IP地址的方法,防止伪造IP地址注入攻击

    PHP获取IP地址的方法 /** * 获取客户端IP地址 * <br />来源:ThinkPHP * <br />"X-FORWARDED-FOR" 是代理 ...

  3. The three day 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本

    """ 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本. 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 ...

  4. 为什么有mac地址还学要有IP地址??

    历史原因:早期的以太网只有集线器 ,没有交换机,所以发出去的包能被以太网内的所有机器监听到,因此要附带上MAC地址,每个机器只需要接受与自己MAC地址相匹配的包. 个人感觉上面的说法并不是太准确.找明 ...

  5. Mac中如何查看电脑的IP地址

    方法一:使用ifconfig命令 方法二:在charles中查看 Charles 的顶部菜单的 “Help”->”Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图 ...

  6. 网吧局域网里的设置外网IP地址、设置内网IP地址、限制内网速度和路由器共享

    现在啊,网吧的需求越来越高,同时在经济比较充裕的情况下,作为网吧的老板可能希望打造全千兆的网吧,让每个进入网吧的人都能充分体验高速的感觉,当然更重要的是在同行竞争中处于上游,特别是对网络游戏爱好者的吸 ...

  7. (转)怎样查看局域网中自己的IP地址和其他电脑的IP地址?

    开始菜单->运行->打cmd,回车->再弹出的黑框里打ipconfig -all,回车显示的IP Address就是你的ip地址看局域网的电脑的ip用软件比较方便,比如p2p终结者, ...

  8. 路由器、交换机学习之IP地址、使用网络掩码划分子网

    局域网子网划分 对于C类IP地址来说(192.168.1.X,其中前面的192.168.1为网络号,后面的X为主机号,这样的网络中可以有254台主机,其中.0为局域网地址,.255为广播地址)进行子网 ...

  9. linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)

    本文中的脚本适用范围: 1)检测某些IP地址是否被占用: 2)检测网络中某些设备是否存活: 3)在分配新的ip地址之前,批量检测环境中是否存在冲突的机器 以上检测基于ICMP Ping报文,要求所有的 ...

  10. 淘宝IP地址库获取到省市IP地址

    http://ip.aliyun.com/index.html https://ispip.clang.cn/ https://github.com/Pingze-github/local-ips 1 ...

随机推荐

  1. EF Core Day1 ——DbContext初识

    ------------恢复内容开始------------ EF中的上下文(DbContext)简介   DbContext是实体类和数据库之间的桥梁,DbContext主要负责与数据交互,主要作用 ...

  2. 16.1k star! 只需要DDL就能一键生成数据库关系图!开源神器ChartDB让你的数据结构"看得见"

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 ChartDB是一款开源的数据库可视化神器,通过一句智能查询就能自动生成专业的数据库关系图. ...

  3. Java---switch...case中case可以匹配些什么

    switch-case语句 case 标签可以是 : •类型为 char.byte.short 或 int 的常量表达式. •枚举常量. •从 Java SE 7 开始,case 标签还可以是字符串字 ...

  4. Qt图像处理技术四:图像二值化

    Qt图像处理技术四:图像二值化 github 如果你觉得有用的话,期待你的小星星 实战应用项目: github :https://github.com/dependon/simple-image-fi ...

  5. pythonOCC 将二维坐标转化为三维坐标

    OCC 当中提供了多种方式转换 直接转换为三维坐标 使用 V3d_View.ProjReferenceAxe()会返回有6个元素的元组,前三位分别对应 XYZ 例子 self._display.Vie ...

  6. IDEA terminal控制台配置git bash及中文乱码问题

    1.修改控制台shell路径:setting -> Tools -> Terminal -> Shell path,修改为git安装路径. 修改完毕,在控制台输入exit断开sess ...

  7. 「Log」做题记录 2023.10.30-2023.11.26

    \(2023.10.30-2023.11.5\) \(\color{blueviolet}{AT\_abc285\_g}\) 神秘题. 网络流是显著的,建边方式如下: 所有边容量都为 \(1\). 每 ...

  8. 如何通过Cgroups机制实现资源限制?

    1.什么是Cgroups? 在说Cgroups之前,我们先说说容器的"限制"问题. 我们知道通过Linux Namespace技术,可以实现容器中的进程看不到别的容器资源,但是有一 ...

  9. 搭建第一个vue项目

    第一:你需要在Windows环境下面搭建vue的开发环境,具体可参考如下的地址: https://www.cnblogs.com/zhaomeizi/p/8483597.html 第二:当你搭建好之后 ...

  10. 全选和全不选demo

    1 <script> 2 3 $(function(){ 4 $("#chkAll").change(function(){ 5 6 //获取我们全选按钮的选中状态: ...