大一刚进来的宣讲会学长就开始提到了七层协议以及三次握手,可以说这些已经听好久了,今天就当记一下笔记。
七层镇楼:
物理层
物理层的媒体包括架空明线、电缆、光纤、无线信道,双绞线,他的功能也就如同其名一般,即提供物理方式上的信息传递。
光纤:光纤传输设备传输方式可简单的分成:多模光纤传输设备和单模光纤传输设备。
多模光纤:全反射, 0.85 um波段,衰减较大,传统的多模光纤网络常使用的发光二极管(LED)做光源。
单模光纤:直径减小到光的波长, 像波导那样, 一直向前直线传播。衰耗较小。
双绞线:双绞线是一种综合布线工程中最常用的传输介质,是由两根具有绝缘保护层的铜导线组成的。把两根绝缘的铜导线按一定密度互相绞在一起,每一根导线在传输中辐射出来的电波会被另一根线上发出的电波抵消,有效降低信号干扰的程度。
同轴电缆:同轴电缆是由一层层的绝缘线包裹着中央铜导体的电缆线。它的特点是抗干扰能力好,传输数据稳定。
宽带和基带
基带信号:信源(信息源,也称发送端)发出的没有经过调制(进行频谱搬移和变换)的原始电信号,基带信号可分为数字基带信号和模拟基带信号。基于基带的传输,由于损耗,都是短距离的,所以比较适用于局域网。
宽带传输:将基带信号进行调制后形成模拟信号,然后采用频分复用技术实现宽带传输,宽带网络中的节点之间用同轴电缆或光纤连接,可以通过多个传输频道同时传送数据、语音以及视频信号,频道之间用频率区分。
可以说宽带传输某一方面是基于基带信号的。
物理层中的数据格式
模拟数据:度娘当中有介绍,即模拟数据一般采用模拟信号,例如用一系列连续变化的电磁波(如无线电与电视广播中的电磁波),或电压信号(如电话传输中的音频电压信号)来表示。
数字数据:数字数据的取值仅允许为有限的几个离散数值(例如0、1)。例如,计算机上的网卡发送的0100110形式的数据是数字数据, 其对应的在电缆上传递的信号是数字信号。
物理层信息传递全流程
有了上面的认识,我们就可以知道信息传递在物理层的本质了:
信源--编码器--调制器--发射设备--传输媒质--解调器--解码器--信宿
即我们计算机由信源传递信息,此时经过编码器进行编码由模拟数据转换为数字信号,数字数据在进行调制转换为模拟信号,进行发送,传递的介质就是光缆,双绞线等等,此时到了目的地在进行解码,转换为信息。
数据链路层
数据链路层在物理层和网络层当中,数据链路层再物理层提供的服务的基础上提供服务,链路层帮助尽心信息流量的分割,将信息与控制信息分开,并且实现透明传输和寻址。对于网络层,由于链路层的存在,而不需要关心物理层具体采用了那种传输介质和通信设备。简单来说就是数据链路层确定了电信号的分组方式。
帧是数据链路层的传输单位,一个帧的帧长等于帧的数据部分加上帧的首部和尾部的长度。
链路层的差错控制是非常有用的,在上面物理层当中,我们已经能够推断出在数据传输中,无论是双绞线还是光纤,平衡电缆,终归是会受到一些物理影响的,这样数据就会产生差错数据链路层能够帮助我们纠正错误,方法也很简单。
交换机就是基于二层协议的,以太网交换机是一种网桥设备,对于交换机我们很容易就会想到了arp欺骗,利用arp我们也可以扫描内网的网段确定有哪些主机是存活的
数据链路层三个作用:
1. 为IP模块发送和接收IP数据报;
2. 为ARP模块发送ARP请求和接收ARP应答;
3. 为RARP发送RARP请求和接收RARP应答
数据链路层有两种不同的数据帧:LLC帧,MAC帧,通常都是指mac帧,接下来介绍一下llc层,arp子层,以及pls子层。
PLS子层:向mac层发送数据的编码,并且接收来自物理层的编码
MAC子层:MAC子层的的主要功能为数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管容理,帧的差错控制,MAC主要负责控制与连接物理层的物理介质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层
LLC是LogicLinkControl的缩写,意为:逻辑链路控制,LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理,所以其主要功能为传输可靠性保障和控制,数据包的分段与重组,数据包的顺序传输。
以太网帧的格式
|- 8 -|- 6 -|- 6 -|-2-|- 46~1500 -|- 4 -| +-----------+---------+--------+---+-----------+-----+ | 前导码 | 目的地址 | 源地址 |类型| 数据 | FCS | +-----------+---------+--------+---+-----------+-----+
ARP报文格式
|- 2 -|- 2 -|- 1 -|- 1 -| 2 |- 6 -|- 4 -|- 6 -|- 4 -| +-------+------+----------+----------+---+-------+-------+--------+-------+ |硬件类型|协议类型|硬件地址长度|协议地址长度|op|send mac|send ip|recv mac|recv ip | +-------+------+----------+----------+---+-------+-------+--------+-------+
网络层
网络层就是第三层了,百度百科对于网络层的介绍是网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。主要内容有:虚电路分组交换和数据报分组交换、路由选择算法、阻塞控制方法、X.25协议、综合业务数据网(ISDN)、异步传输模式(ATM)及网际互连原理与实现,所以网络层的作用简单来说就是地址管理以及路由选择.
网络层具有三个主要组件:IP协议、因特网控制报文协议、因特网路由选择协议
ip报头
ipv6
|- 8 -|- 8 -|- 8 -|- 8 -| +-----+-----+-----+-----+-----------------------+ |ver |flow class | flow label | +-----+-----------+-----+-----------+-----------+ |payload length |next header| hop limit | +-----------------------+-----------+-----------+ | source address | | 128bit | |+----------------------------------------------+ | | | destination address | | 128bit | | | +-----------------------------------------------+
icmp
从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性。当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件,我们的ping包就是icmp包,目的就是为了探测与目标主机连接是否通畅,从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性。当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件。
igmp
IGMP就是用来在接收者主机和与其所在网段直接相邻的组播路由器之间建立、维护组播组成员关系的协议。提供internet网际多点传送的功能,即将一个ip包拷贝给多个host。
到目前为止,IGMP 有三个版本:
1. IGMPv1(由RFC 1112 定义)
2. IGMPv2(由RFC 2236 定义)
3. IGMPv3(由RFC 3376 定义)
因特网路由选择协议
网络层最根本的目的是将分组在复杂的网络中从源传送到目的地,而这一过程很大程度上依赖于路由选择,它决定了数据报从源到目的地所流经的路径。
转发:当一个分组达到路由器的某个输入链路时,路由器将其移动到合适的输出链路的过程称为转发。
路由选择:路由选择是当分组从发送方到接收方时,网络层选取的整个的分组移动路径在选择分组从源到目的地主机的路径时,会依据某些路由选择算法
详细算法
根据算法是全局式还是分散式分类:
全局式路由选择算法:用完整的、全局性的网络知识计算出源到目的地之间的最低费用
分散式路由选择算法:以迭代、分布式的方式计算出最低费用路径
根据算法是静态的还是动态的分类:
静态路由选择算法:路由的变化随时间的流逝改变的很慢,通常是人工干预调整转发表
动态路由选择算法:当网络流量负载或拓扑发生变化时改变路由选择路径
根据算法是负载敏感还是负载迟钝分类:
负载敏感算法:链路费用动态的变化来反映底层链路的拥塞程度
负载迟钝算法:某条链路的费用不明显的反映当前拥塞水平
传输层
传输层将数据进行分段并重组为数据流。位于传输层的服务将来自上层应用的数据进行分段和重组,并将它们合并到同一个数据流中。它们提供了端到端的数据传输服务,并可在互联网络上的发送主机和目标主机之间建立逻辑连接。前面我们知道IP协议能将分组准确的发送到目的主机,但是停留在网络层,并不知道要怎么交给我们的主机应用进程,通过前面的学习,我们学习有mac地址,通过mac地址能找到同一个网络下主机,有IP地址,通过ip地址能找到不同网络下的网络,结合mac地址就能找到对应主机,此时我们再通过端口就可以找到主机的应用进程了.所以传输层就是将两个端口连起来通信的介质,不然光知道两个端口有什么用,怎么通信的,还是要靠运输层来做这个事情,其中重要的就是靠两个协议,UDP和TCP协议。
UDP协议
此处红框之内便是端口。但要记住,udp并不安全,没有tcp可靠,因为当 UDP 数据封装到 IP 数据报传输时,如果丢失,会发送一个 ICMP差错报文给源主机。即使出现网络阻塞情况,UDP也无法进行流量控制。此外,传输途中即使出现丢包,UDP 也不负责重发,甚至当出现包的到达顺序杂乱也没有纠正的功能。
TCP协议
TCP协议是面向连接的、可靠传输、有流量控制,拥塞控制,面向字节流传输等很多优点的协议。其最终功能和UDP一样,在端和端之间进行通信。
NDP协议
邻居发现协议是上面两个协议当中一部分,用于发现在链路上的其他节点以及相应地址,确定路由,直接相连的邻居信息,包括7a64e59b9ee7ad9431333431373164邻接设备的设备名称、软/硬件版本、连接端口等,另外还可提供设备的ID、端口地址、硬件平台等信息。 1. 路由器发现 2. 前缀发现 3. 参数发现 4. 地址自动配置 5. 地址解析 6. 下一跳确定 7. 邻居不可达性检测 8. 地址冲突
三次握手
三次握手经常出现,是一种确保双方端口是否可用的机制,已经耳熟能详了,两者之间的SYN,ACK包可以利用做一些探测,判断端口,或者绕过防火墙进行探测。
会话层
百度百科上对于会话层的描述:会话层(Session)是建立在传输层之上,利用传输层提供的服务,使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层(SESSION LAYER)允许不同机器上的用户之间建立会话关系。会话层循序进行类似的传输层的普通数据的传送,在某些场合还提供了一些有用的增强型服务。允许用户利用一次会话在远端的分时系统上登陆,或者在两台机器间传递文件。 会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任一时刻只能单向传输。如果属于后者,类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方。一种与对话控制有关的服务是令牌管理(token management)。有些协议会保证双方不能同时进行同样的操作,这一点很重要。为了管理这些活动,会话层提供了令牌,令牌可以在会话双方之间移动,只有持有令牌的一方可以执行某种关键性操作。另一种会话层服务是同步。如果在平均每小时出现一次大故障的网络上,两台机器简要进行一次两小时的文件传输,试想会出现什么样的情况呢?每一次传输中途失败后,都不得不重新传送这个文件。当网络再次出现大故障时,可能又会半途而废。为解决这个问题,会话层提供了一种方法,即在数据中插入同步点。每次网络出现故障后,仅仅重传最后一个同步点以后的数据。(抄就完事了嗷) 在会话层上面有很多协议,ADSP,ASP即appletalk的数据和动态会话协议
表示层
语法转换:语法转换涉及代码转换和字符集的转换,数据格式的修改、数据结构操作的适配、数据压缩、数据加密等。
语法选择:语法选择是提供初始选择的一种语法和随后修改这种选择的手段。
联接管理:利用会话层提供的服务建立表示联接,管理在这一联接之上的数据运输和同步控制,以及正常或非正常地终止联接。
这里就可以转换为代码然后在电脑上进行显示,同时表示层能够帮助我们进行加密解密,从而实现安全连接。
应用层
应用层直接和应用程序接口并提供常见的网络应用服务。应用层也向表示层发出请求。应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务.
应用进程交换的报文类型,如请求报文和响应报文
各种报文类型的语法,如报文中的各个字段及其详细描述
字段的语义,即包含在字段中的信息的含义。
进程何时、如何发送报文,以及对报文进行响应的规则。