计算机网络基础
计算机网络分类、设备、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还是可以的。
点对点、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:
- Physical 物理层:
- 传输比特数据。确保发送1,接收到的也是1。
- 中继器工作在物理层。
- Data Link 数据链路层:
- 确保数据帧传输正确、能按正确的顺序恢复。
- NIC网卡在这一层。其实,NIC也接受比特数据,可以认为是交叉在物理层和数据链路层。
- Network 网络层:
- 主要功能是控制子网运行。需要解决如何将数据包从源端路由到接收方。它决定了数据的路径选择和转寄。
- 如IP、ICMP、ARP等。
- 所以路由工作在网络层,还有layer 3 switch也工作在这一层。
- Transport 传输层:
- 把传输表头(TH)至数据以形成数据包。传输表头包含了所有使用的协议等发送信息。
- 如TCP、UDP、RTP等。Port端口的概念在传输层[3]。
- Session 会话层:
- 负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
- Presentation 表示层:
- 把数据转换为能与接收者的系统格式兼容并适合传输的格式。
- Appliction 应用层:
- 提供为应用软件而设计的接口。
- 如HTTP、HTTPS、FTP、TELENT、SSH、SMTP、POP3等。
Linux TCP/IP Model:
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:传输层的标识。
参考资料:
- youtube - Computer Networking Tutorial(蛮有趣的)
- wiki - OSI Model
- 《计算机网络 - 第五版》(潘爱民译)
- tcpip-vs-osi-whats-the-difference-between-the-two-models(两张图片的来源)
- youtube - Computer Networking Tutorial for Beginners & Basic Network Fundamentals(蛮好的)
注[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 |