一、传输距离变长发送、接收方需要解决的问题
发送方需要解决的问题: 接收方需要解决的问题:
1、怎么保证数据能准取的到达下一个设备?数据链路层
2、一个数据在转发的时候如何定位主机?网络层 ip
3、长距离转发的过程中数据丢失怎么办?传输层
4、如何处理发来的数据? ----应用层 http ftp smtp
因此在每一层都要把每一层的问题解决,每层都要有自己的协议。
二、网络模型分层及每层协议
实践用的是数据链路层、网络层、传输层和应用层。为什么分层:分层可以高内聚、低耦合且问题是分层的。
物理层:光电信号的传递,双绞线,集线器(用于信号放大)。
数据链路层:解决同一个局域网中两台设备的数据传输。交换机
网络层:定位 路由器
传输层:数据通信可靠性问题
应用层:使用
三、网络协议栈和os有什么关系
网络层和传输层在os内核实现,网络部分都是一样的,操作系统可能不一样,网络通信的本质就是贯穿协议栈的过程。无非就是从上往下还是从下往上。
四、网络传输的基本流程
1、网络协议栈的层状结构中,每一层都有协议;
2、信息传输有序,应用层加版本,传输层加序号,网络层加(src,dst),数据链路层加东西,自顶向下叫封装,自底向上叫解包,每层都要添加报头,去掉报头叫有效载荷。
报文=报头+有效载荷
3、几乎任何层的协议都能提供有效载荷和报头分离
4、几乎任何层的协议都要在报头中提供将自己的有效载荷交付给上层的哪一个(报文分用)。
五、以太网(局域网)通信:一个主机怎么把数据交给另一个主机?
每台主机在局域网上都要有唯一的标识
1、生活中的例子:课堂上,老师叫赵六交作业,只有赵六响应,虽然其他人都听到了,但是其他人经过解析发现叫的不是自己就会丢弃,但是老师给赵六说话的时候,张三给王五说话,王五给李四说话,这个时候就会发生碰撞
2、网络中的例子:H1想给H5发送消息,其他设备都可以收到,但是解析M1 M5发现不是给自己的就会丢弃,但是此时其他设备也可以互相通信,那么也会遇到碰撞,可以加一个交换机。
一台主机可能同时要检测两个甚至多个消息。为了避免这种情况,每台主机都要有碰撞避免的能力,即碰撞避免的算法。局域网任何一个时刻,都只能有一台主机在向局域网中发送消息。那么局域网就是临界资源,必须要互斥访问 。