两台计算机通信
两台计算机通信
一、五层协议参考模型
- 应用层
- 运输层
- 网络层
- 数据链路层
- 物理层
1.物理层
比特流
传输介质/物理媒介:
-
导向型传输介质
- 双绞线:近距离
- 同轴电缆:远距离,抗干扰能力强
- 光纤:带宽远远大于其他传输媒体
-
非导向型传输介质
- 无线电波
- 微波
- 红外线、激光
2.数据链路层
帧
物理层问题:
(1)物理连接有差错且不可靠
(2)物理设备之间存在传输速度不匹配
数据链路层作用:
- 将物理层的可能出错的物理连接改成逻辑上无差错的数据链路
- 为网络层提供服务:将网络层的IP数据报封装成帧
1⃣️封装成帧
2⃣️MAC地址
MAC地址 == 链路层地址
计算机之间的数据传送,就是通过MAC地址来唯一寻址
6个字节 == 48个位(1byte == 8bit)(6 * 8 = 48)
一台主机有多少网络适配器就有多少个MAC地址
ARP 地址解析协议:解析另一台计算机的MAC地址
3.网络层
IP数据报(包,分组)
任务:选择合适的网间路由和交换结点
1⃣️IP协议
屏蔽下层物理网络的差异,为上层提供统一的IP数据报
IP数据报中含有收、发双方的地址
IP协议提供无连接的、不可靠的、尽力的数据报投递服务
- 无连接的:发送端任何时候都可以自由发送数据,接收端不知道何时从哪里接收到数据,一台主机发出的数据报序列,可能取自不同的路径,甚至其中一部分会在传输过程丢失
- 不可靠的:IP数据报本身不保证数据投递结果,不对内容做任何检测,数据报的丢失,通过路由器发送ICMP报文告知,必要时由TCP负责差错恢复动作
- 尽力的:每个数据链路上规定一个最大传输单元MTU,如果IP数据报的长度超过MTU,则将其分割成一个个小的分组进行传送,以适应具体的网络
2⃣️ARP地址解析协议
网络层实现主机之间的通信,链路层实现具体每段链路之间的通信,在此通信过程中,IP数据报的源地址和目的地址始终不变,而MAC地址随着链路的改变而改变
ARP(Address Resolution Protocol):IP -> MAC
ARP高速缓存中没有想要的IP -> MAC的映射怎么办?
带着A的IP地址、MAC地址和B的IP地址,通过广播,发送请求分组,B接收到请求,向A发送相应分组,告诉A自己的MAC地址,然后在ARP高速缓存中存储A到B的映射
相反,RARP:MAC -> IP
4.传输层
报文段/用户数据报
**IP地址 + 端口号(Port)**可以唯一确定是哪一个应用进程
网络层:主机到主机的通信
传输层:端口到端口的通信(进程到进程的通信)
传输层两大协议:TCP协议、UDP协议
-
用户数据报协议UDP
传输数据前不需要建立任何连接,收到后也不需要给出确认
由于不需要建立连接、不提供可靠的交付,因此也是一种有效的工作方式
一般用于即时通信(QQ)
-
传输控制协议TCP
面向连接的服务,传数据前建立连接,传完后释放连接
TCP可靠、面向连接
一般用于文件传输、发送和接收邮件
5.应用层
报文
由于从传输层传来的数据五花八门,有HTML、MP4格式等等,因此对于不同网络应用需要不同的应用层协议。
互联网中的应用层协议举例:
- 域名系统DNS
- 万维网应用HTTP
- 电子邮件SMTP
1⃣️DNS域名解析协议
域名 -> IP地址
DNS端口号:53
UDP或者TCP都可以进行传输,大多数情况下用UDP,这就要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性
域名解析方式:
- 递归查询
- 迭代查询
基本原理:
1)浏览器搜索自己的DNS缓存,缓存中维护一张域名与IP地址的对应表
2)若没有,则搜索操作系统的DNS缓存
3)若没有,则操作系统将域名发送到本地域名服务器(递归查询方式),本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则,通过以下方式迭代查找:
- 本地域名服务器向根域名服务器发起请求,根域名服务器返回com域的顶级域名服务器的地址
- 本地域名服务器向com域的顶级域名服务器发起请求,返回权限域名服务器地址
- 本地域名服务器向权限域名服务器发起请求,得到IP地址
4)本地域名服务器将得到IP地址返回给操作系统,同时将IP地址缓存
5)操作系统将IP地址返回给浏览器,同时将IP地址缓存
至此,浏览器就可以得到域名对应的IP地址
【参考】很适合回顾基础知识的网站
https://cswiki.top/