计算机网络分类、设备、OSI模型。

网络的分类(地理空间):

  • LAN - local Area Network:在同一栋建筑(学校、小办公室、家庭)内,(为什么需要?)可以共享一些(打印机)设备。
    • Virtual LANs:打开地理位置的局限,相互之间通信好像在同一个网段一样。
  • MAN - Metropolitan Area Network:对应城市这个范围,城市内的医院、学校、图书馆组成了MAN。
  • WAN - Wide Area Network:对应国家,不同城市之间连接(大于30 miles)。

网络连接设备:

  • 网卡 - Network Interface Card, NIC:又叫网络适配器 - Network Adapter,通过唯一的MAC地址标识自己,有有线网卡和无线网卡之分[1]。
  • 路由器 - Router:家里的路由器。是LAN的边缘,扮演从一个网络到其他网络的网关角色,它连接两个不同网络。
  • 交换机 - Switch:为子网提供更多ports。种类很多,有的也有中继器的功能。
    • layer 2 switch:交换机的port口可以有MAC地址,这就会为连接交换机的两台设备提供点对点网络提供了可能[2]。
    • layer 3 switch:Network layer switch。使用IP地址代替MAC地址。
  • 中继器 - Repeater:无线信号放大器。

网络连接拓扑结构:

  • Bus Topology
  • Star Topology:常见的如家里的路由,交换机。
  • Ring Topology:
  • Mesh Topology:每个PC都可以和其他任意PC连接。好处:A -> B断开了,A -> C -> B还是可以的。

Network Topologies

点对点、Client/Server网络:

  • 点对点 - Peer to Peer Model:可以serve和request数据。如bt下载、网络电话。
  • Client/Server Model:Client向Server请求数据。如Web server、数据库Server、File Server。

OSI、TCP/IP Model

两台计算机是如何传输数据的?

OSI model - Open System Interconnnection Reference Model:

  1. Physical 物理层:
    • 传输比特数据。确保发送1,接收到的也是1。
    • 中继器工作在物理层。
  2. Data Link 数据链路层:
    • 确保数据帧传输正确、能按正确的顺序恢复。
    • NIC网卡在这一层。其实,NIC也接受比特数据,可以认为是交叉在物理层和数据链路层。
  3. Network 网络层:
    • 主要功能是控制子网运行。需要解决如何将数据包从源端路由到接收方。它决定了数据的路径选择和转寄。
    • 如IP、ICMP、ARP等。
    • 所以路由工作在网络层,还有layer 3 switch也工作在这一层。
  4. Transport 传输层:
    • 把传输表头(TH)至数据以形成数据包。传输表头包含了所有使用的协议等发送信息。
    • 如TCP、UDP、RTP等。Port端口的概念在传输层[3]。
  5. Session 会话层:
    • 负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
  6. Presentation 表示层:
    • 把数据转换为能与接收者的系统格式兼容并适合传输的格式。
  7. Appliction 应用层:
    • 提供为应用软件而设计的接口。
    • 如HTTP、HTTPS、FTP、TELENT、SSH、SMTP、POP3等。

OSI模型中数据传输

Linux TCP/IP Model:

OSI和TCPIP对比

MAC地址 - Media Access Control Address:NIC有唯一标识的MAC地址。

IP地址 - Internet Protocol (IP) address:192.168.1.1分为Network ID(192.168.1)和Host ID(1)

Port:传输层的标识。


参考资料:


注[1]:NIC是如何工作的?

接收到bits -> frame -> 校验CRC值(验证正确性) -> 验证Destination MAC(是发给本机器的么) -> 去掉包裹的source MAC和destination MAC地址 -> 发给上层Network Protocol

注[2]: Switch是怎么记住连接设备的MAC地址的?

在Switch内存中存储了张表CAM - Content Addressable Memory。记录了每个port对应的MAC地址。

注[3]:不同协议有各自常用端口 - wiki

Port Protocol Full Name
21 FTP File Transfer Protocol
22 SSH Secure Shell
23 Telnet Terminal Network
25 SMTP Simple Mail Transfer Protocol
53 DNS Domain Name System
80 HTTP Hypertext Transfer Protocol
88 Kerberos Kerberos认证代理
110 POP3 Post Office Protocol Version 3
443 HTTPS Secure Hypertext Transfer Protocol