陈颂光
全栈工程师,能够独立开发从解释器到网站和桌面/移动端应用的各类软件。
关注我的 GitHub

与网络相关的博文目录

理解计算机网络

网络

一组相互连接的网络称为互联网。为了设计和描述网络,通常用分层方法以分解复杂度,每层负责提供不同的服务,每一层只依赖于下面一层的接口。每一层也可有多种称为协议的工作方式以提高灵活性。下面给出一个实用的分层模型:

  • 物理层负责在通信信道上传输比特(它要尽可能确保一端发送一个比特时另一端收到一个相同的比特),这涉及机械和电子:
    • 0与1分别怎样表示
    • 传输是单工的(只有一方可发送)、半双工(双方可发送,但同一时间只有一方在发送)的还是全双工(双方可同时发送)
  • 数据链路层负责在两个相邻节点间传输帧,常见的问题有:
    • 确保接收方收到正确的帧,通常是通过发回确认帧
    • 确保接受方与发送方速率匹配(流量调节)
    • 广播式网络中共享信道的访问
  • 网络层负责在两个节点间传输帧,常见的问题有:
    • 对节点的命名
    • 决定从源到目标的路径(路由)
    • 异构网络间的兼容性
    • 服务质量保证
  • 传输层负责在两个应用程序间传输包,常见问题有:
    • 区分应用程序(端口)
    • 是否保证可靠性(顺序、错误检测)
    • 流量控制
  • 应用层负责生成或处理数据。