文章目录
osi七层模型
- 应用层:各种应用协议
- 表示层:数据的格式化,加解密,压缩解压等
- 会话层:建立、管理、终止实体之间的会话链接
- 传输层:数据的分段和重组 端到端的数据服务
- 网络层:将分组从源端传到目的端;逻辑寻址
- 数链层:将分组数据封装成帧;实现两个相邻节点的通信
- 物理层:在介质上传输比特;机械和电气规定
tcp/ip
- 应用层:提供应用程序网络接口
- http、telnet、ftp、tftp
- 传输层:建立端到端的链接
- tcp、udp
- 网络层:寻址与路由选择
- ip
- 数链层:物理介质访问
- ethernet、ppp、802.3
- 物理层:二进制数据流传输
- 接口和线缆
物理层
物理层设备
- 网络适配器
- 集线器
- 分线器
- 中继器
- 调制解调器
- 光纤收发器
数据链路层
传输数据帧的层次:
数据成帧,帧的传输以及差错处理,数据链路的通路管理等等几个问题
帧头包含原mac地址,目的mac地址等等信息,帧尾包含fsc,用于纠错处理。
差错控制技术:
原端—>通信信道---->目的端
在源端解码错误 在信道产生噪音干扰
流量控制:
控制对方的流量的发送速率,不超过接收端的处理能力
链路管理:
数据链路的建立,维持和释放
局域网技术:
局域网标准化委员会(简称IEEE 802委员会)定义了多种主要的LAN网:以太网(Ethernet 802.3)、令牌环网(Token Ring 802.5)、光纤分布式接口网络(FDDI 802.8)、异步传输模式网(ATM)、无线局域网(WLAN 802.11)。
IEEE 802.3
描述带冲突检测的载波监听多路访问(CSMA/CD)的访问方法和物理层规范
IEEE 802.11
描述无线局域网访问控制方法和物理层技术规范(1999)
局域网只涉及OSI的物理层和数据链路层。当不同的局域网需要在网络层实现互连时,可以借助其他已有的通用网络层协议(如IP协议)实现。局域网的数据链路层分为逻辑链路控制(LLC)和介质访问控制(MAC)两个功能子层,
MAC子层负责与硬件参数相关部分,所以靠近物理层
- 数据帧的封装
- 帧的寻址与识别
- 帧的接收与发送
- 链路的管理
- 帧的差错控制
mac地址:网卡的mac地址都是唯一的,可以用命令去改变但是容易造成局域网震荡
mac地址前二十四位由IEEE给出,后二十四位由运营商自行分配
LLC子层负责与硬件无关的部分,所以靠近网络层
以太网技术
以太网是出现最早的局域网,也是目前最常见、最具有代表性的局域网,它是当今TCP/IP采用的主要的局域网技术。CSMA/CD(Carrier Sense Multiple Access/Collision Detection),即载波监听多路访问/冲突检测,是早期共享式以太网用于解决冲突的协议,即介质访问控制方。CSMA/CD 的工作原理:先听后发,边发边听,冲突停发,随机延迟后重发
冲突域:
在共享介质上,当两个节点同时传输数据时,从两个设备发出的帧在物理介质上相遇,从而发生碰撞,彼此数据都被破坏,即称为冲突。
广播域:
在以太网中,如果一个结点发送广播数据包,那么这个局域网网络中的其它结点也将会收到这个广播数据包。
交换式以太网
核心是交换机,采用全双工,不共享通信介质,由交换机负责转发数据帧,不会产生冲突
交换式以太网中,交换机的每个端口构成了一个冲突域。
交换式以太网中的所有结点也构成了一个广播域。
交换机工作原理
交换机工作于数据链路层,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源Mac地址,这样它就知道源Mac地址的机器是在哪个端口上的;
(2)再去读取包头中的目的Mac地址,并在地址表中查找相应的端口;
(3)如表中有与这目的地址对应的端口,把数据直接复制到这端口上;
(4)如果表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的Mac地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,对全网的Mac地址信息都可以学习到,交换机就是这样建立和维护它自己的地址表。
交换机的分类
按网络结构位置划分,可划分为:接入层交换机、汇聚层交换机和核心层交换机。
●核心层交换机:
一般采用机箱式模块化设计,机箱中可承载管理模块、光端口模块、高速电口模块、电源等,具有很高的背板容量。
●汇聚层交换机:
可以是机箱式模块化交换机,也可以是固定配置的交换机,具有较高的接入能力和带寬,一般会包含光纤端口、高速电口等端口;
●接入层交换机:
一般是固定配置的交换机,端口密度较大,具有较高的接入能力,以10/100M端口为主,以固定端口或扩展槽方式提供1000Mbps的上联端口。
网络层
网络层主要是将数据包从源端找到合适网络路径送达目标端,由于上层下来的报文通常很长,不适合直接在分组交换的网络中传输,网络层规定了数据单元的类型和格式,将其称为包,它完成传输层报文和网络层分组间的相互转换。
因此,在发送端,网络层负责将传输层报文拆成一个一个分组,在接收端,网络层负责将分组组装成报文交给传输层处理,这种将长的报文分割成若干短的分组进行多次传输,即以分组为单位的转发方式称为分组交换(包交换)
作用:
路由转发:源与目的主机之间可能存在多条相通的路径,网络层选择一条“最佳”路径完成数据转发
拥塞控制:合理分配数据包的转发路径,提高转发效率
异种网络的互连:当源主机和目标主机的网络不属于同一种网络类型时,为了解决不同网络在寻址、分组大小、协议等方面的差异,要求在不同种类网络交界处的路由器能够对分组进行处理,使得分组能够在不同网络上传输。
传输层
传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据包协议UDP(User Datagram Protocol)
TCP:
TCP是一种面向连接的传输层协议,可提供可靠的传输服务
TCP允许一个主机同时运行多个应用进程。每台主机可以拥有多个应用端口,每对端口号、源和目标IP地址的组合唯一地标识了一个会话。端口分为知名端口和动态端口。有些网络服务会使用固定的端口,这类端口称为知名端口,端口号范围为0-1023。如FTP(20 21)、HTTP(80)、Telnet(23)、SNMP(25)服务均使用知名端口。动态端口号范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。
报文详情:
- TCP通常使用IP作为网络层协议,这时TCP数据段被封装在IP数据包内。
- TCP数据段由TCP Header(头部)和TCP Data(数据)组成。TCP最多可以有60个字节的头部,如果没有Options字段,正常的长度是20字节。
- TCP Header是由如上图标识的一些字段组成,这里列出几个常用字段。
- 16位源端口号:源主机的应用程序使用的端口号。
- 16位目的端口号:目的主机的应用程序使用的端口号。每个TCP头部都包含源和目的端的端口号,这两个值加上IP头部中的源IP地址和目的IP地址可以唯一确定一个TCP连接。
- 32位序列号:用于标识从发送端发出的不同的TCP数据段的序号。数据段在网络中传输时,它们的顺序可能会发生变化;接收端依据此序列号,便可按照正确的顺序重组数据。
- 32位确认序列号:用于标识接收端确认收到的数据段。确认序列号为成功收到的数据序列号加1。
- 4位头部长度:表示头部占32bit字的数目,它能表达的TCP头部最大长度为60字节。
- 16位窗口大小:表示接收端期望通过单次确认而收到的数据的大小。由于该字段为16位,所以窗口大小的最大值为65535字节,该机制通常用来进行流量控制。
- 16位校验和:校验整个TCP报文段,包括TCP头部和TCP数据。该值由发送端计算和记录并由接收端进行验证。
TCP是一种可靠的,面向连接的全双工传输层协议。
TCP连接的建立是一个三次握手的过程。如图所示:
主机A(通常也称为客户端)发送一个标识了SYN的数据段,表示期望与服务器A建立连接,此数据段的序列号(seq)为a。
服务器A回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。
主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文的确认。
TCP连接的终止则要经过四次握手。
如图所示:
主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。
服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。
服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。
主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。
以上四次交互便完成了两个方向连接的关闭。
UDP
UDP是一种面向无连接的传输层协议,传输可靠性没有保证
UDP头部仅占8字节,传输数据时没有确认机制
使用场景
UDP适合传输对时延敏感的流量,如语音和视频。
在使用TCP协议传输数据时,如果一个数据段丢失或者接收端对某个数据段没有确认,发送端会重新发送该数据段。
TCP重新发送数据会带来传输延迟和重复数据,降低了用户的体验。对于时延敏感的应用,少量的数据丢失一般可以被忽略,这时使用UDP传输将能够提升用户的体验
议,传输可靠性没有保证
UDP头部仅占8字节,传输数据时没有确认机制
使用场景
UDP适合传输对时延敏感的流量,如语音和视频。
在使用TCP协议传输数据时,如果一个数据段丢失或者接收端对某个数据段没有确认,发送端会重新发送该数据段。
TCP重新发送数据会带来传输延迟和重复数据,降低了用户的体验。对于时延敏感的应用,少量的数据丢失一般可以被忽略,这时使用UDP传输将能够提升用户的体验