一、计算机概述
二、体系结构
层 | 功能 |
---|
应用层 | 传输数据的目的(如:http:拿到网页;ssh:命令执行操作执行) | 传输层 | 处理传输遇到的问题,保证数据的可靠性 | 网络层 | 数据转发,数据去向问题 | 数据链路层 | 负责数据真正的发送过程 |
另外: 层状结构本质:解耦,层与层之间,只有接口的互相调用关系
局域网:交换机(局域网内数据转发)与路由器(路由转发,连接不同的局域网)连接
协议:本质是一种约定(约定本身要能通过某种数据表示出来,通信双方也能认识)
1.OSI体系结构
OSI:开放系统互连
2.TCP/IP体系结构(四层/五层)
层 | 功能 |
---|
物理层 | 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层. | 数据链路层: | 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层. | 网络层: | 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层. | 传输层: | 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机. | 应用层: | 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层 |
三、通信过程
1.两台主机通信过程
(1)封装:数据自顶向下增加数据段 **(2)解封(解包):**数据自下向上解开包的过程 注意: a.不同层的报头,可能是下层协议的有效载荷 b.当前层如何得知报头和有效载荷之间的分割? 协议共性1:定长报头、自定义描述字段 c.怎么知道将有效载荷交付给上层的哪个协议? 协议共性2:几乎所有的协议,表明需要把有效载荷交付给上层的哪个协议 分用:交付的过程
2.局域网的通信原理
局域网(以太)通信,本质是所有的主机在底层其实都收到了任何数据,只不过经过筛选提交,发给自身的数据。 (1)局域网中,网络本身的特性要求,一个时刻只能有一个机器发送数据 (2)如果网络中的数据发生了碰撞,当前主机是可以检测到的 (3)所有的主机都要进行“碰撞避免”算法
3.数据链路层的数据通信过程
(1)MAC地址→网卡,内置了**48位(6字节)**的序列号,全球唯一的 (2)MAC数据帧
单向数据发送:发送数据,只有目的地址的主机进行处理 广播:发送所有主机,并且所有主机会处理
另: 查看主机信息:ifconfig ether:以太
4.跨网段的主机数据传输
路由器:至少要能够横跨两个局域网 对于每个网络,都认为路由器是它的局域网上的一台主机 底层使用的协议,具体是完全不同的(即:在最底层添加的报头不一样) 另外: IP(路由器内):用来标识全网内唯一的一台主机 ipv4:32位比特标识IP地址 ipv6:128位 IP虚拟化了底层网络的差异
注意: (1)无论上层协议有多少层,最终都必须在硬件上进行数据传输
|