基本概念 · 通信基础
提示:本系列文章已经修订完毕,修改了纰漏,优化了文章结构。为了获得更好的阅读体验,请查看以下新专栏或新站点
CSDN 新专栏:
https://blog.csdn.net/keeppromise/category_12489629.html
我的个人博客(Github Page):
https://blog.lens-shrine.top/categories/学习记录:网络协议/
互联网(internet)
跨平台原理(C++,Java)
C/C++编译之后可直接生成平台对应的可执行文件。
Java编译之后生成字节码文件。对于操作系统来说,不是可执行文件。
客户端与服务器
其中一种结构(准备搭建用来学习):
例、客户端向服务器请求:
http://IP地址:端口号/项目
例:
http://10.10.125.41:8080/qq/login/...
网络互连模型(OSI)
国际标准:OSI参考模型(7层)
实际应用:TCP/IP协议(4层)
学习研究:(5层)
计算机之间的的通信基础
先不考虑无线连接的问题
- 需要得知对方的IP地址。
- 最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收。
- 如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理。
- 如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层进行处理
计算机之间的连接方式 - 网线直连
- 需要用交叉线(不是直通线)
- 同一网段
- ping走的是ICMP协议
- ARP协议:已知 IP地址,不知道MAC地址时,通过广播获取 MAC地址。
右边出现的3个ARP包,实际上是一次完整的发送请求、接收响应的过程。ICMP包同理。
计算机之间的连接方式 - 同轴电缆(Coaxial)
连接同一网段。
计算机之间的连接方式 - 集线器(Hub)
连接同一网段。
集线器相比同轴电缆唯一的优点:连着集线器的某一个设备中间线路出问题,不会影响到连着集线器的其他设备的通信。
计算机之间的连接方式 - 网桥(Bridge)
还是,连接同一网段。
计算机之间的连接方式 - 交换机(Switch)
依旧是连接同一网段。
若全球所有设备都用交换机连接:
1、他们必然处于同一网段,因此 IP地址可能会不够用。
2、第一次发送数据包仍然需要ARP广播,耗费大量时间。
3、形成广播风暴,只要有一个设备发送ARP广播,全球设备都能收到。
计算机之间的连接方式 - 路由器(Router)
路由器含有网关(Gateway),网关也有IP和MAC地址。
主机在发数据之前,首先会判断目标主机的IP地址跟它是否在同一个网段:
- 在同一个网段:ARP广播、通过交换机/集线器传递数据
- 不在同一个网段:通过路由器转发数据