开放系统互联OSI
OSI 模型的七层结构
- 第7层 应用层
应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:
HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等 - 第6层 表示层
主条目:表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式 - 第5层 会话层
会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。 - 第4层 传输层
传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议
等发送信息。例如:传输控制协议(TCP)等。 - 第3层 网络层
网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。
网络表头包含了网络数据。例如:互联网协议(IP)等。 - 第2层 数据链接层
数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形
成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链
表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务
(GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控制
(Media access control,MAC)子层 - 第1层 物理层
物理层(Physical Layer)在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网
络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等
PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位
- 物理层的 PDU是数据位 bit
- 数据链路层的 PDU是数据帧 frame
- 网络层的PDU是数据包 packet
- 传输层的 PDU是数据段 segment
- 其他更高层次的PDU是消息 message
三种通讯机制
- 单工通信:只有一个方向的通信
- 半双工通信:通信双方都可以发送和接收信息,但不能同时发送,也不能同时接收
- 全双工通信:通信双方可以同时发送和同时接收
网桥(Bridge)
也叫桥接器,是连接两个局域网的一种存储/转发设备,根据MAC地址表对数据帧进行转发,可隔离碰撞域网桥将网络的多个网段在数据链路层连接起来,并对网络数据帧进行管理
优点
- 过滤通信量
- 扩大了物理范围
- 提高了可靠性
- 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网
缺点
- 存储转发增加了时延
- 在MAC 子层并没有流量控制功能
- 具有不同 MAC 子层的网段桥接在一起时时延更大
- 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴
交换机switch
交换机是工作在OSI参考模型数据链路层的设备,外表和集线器相似
它通过判断数据帧的目的MAC地址,从而将数据帧从合适端口发送出去
交换机是通过MAC地址的学习和维护更新机制来实现数据帧的转发
工作原理
- (1)交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表
中 - (2)交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发
- (3)如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)
- (4)广播帧和组播帧向所有的端口转发
集线器与交换机的比较
- (1)交换机属于数据链路层设备,而集线器属于物理层设备
- ,(2)集线器在转发帧时,不对传输介质进行检测,交换机在转发帧之前必须执行 CSMA/CD 算法。若
在发送过程中出现碰撞,就必须停止发送和进行退避。所以交换机能隔离冲突,而集线器却只能增加冲
突 - (3) 交换机的每个端口可提供专用的带宽,而集线器的所有端口只能共享带宽
- (4)集线器只能实现半双工传送,而交换机可支持全双工传送
- (5)集线器和交换机都无法隔离广播域
路由器 router
路由器需要做下列事情:
- 分隔广播域和冲突域
- 选择路由表中到达目标最好的路径
- 维护和检查路由信息
- 连接广域网
- 路由:把一个数据包从一个设备发送到不同网络里的另一个设备上去。这些工作依靠路由器来完
成。路由器只关心网络的状态和决定网络中的最佳路径。路由的实现依靠路由器中的路由表来完成
MAC地址
- 在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)
- IEEE 802标准为局域网规定了一种48位的全球地址(一般都简称为“地址”),是局域网中每一台计算机固
化在网卡ROM中的地址 - IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)
- 地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没
有重复地址
虚拟局域网 VLAN
VLAN 原理
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网
优点
- (1)更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下
降。VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能 - (2)简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成
网络设备的逻辑组,无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机 - (3)提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧
虚拟局域网的实现技术
- (1)基于端口的VLAN
- (2)基于MAC地址的VLAN
- (3)基于协议的VLAN
- (4)基于网络地址的VLAN
TCP/IP 标准
TCP/IP 介绍
- Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议
TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多
协议
最早发源于1969年美国国防部(缩写为DoD)的因特网的前身ARPA网项目,1983年1月1日,TCP/IP取
代了旧的网络控制协议NCP,成为今天的互联网和局域网的基石和标准,由互联网工程任务组负责维护
TCP/IP
- 分层共定义了四层,和OSI参考模型的分层有对应关系
- 应用层==(应用层、表示层、会话层)
- 传输层=传输层
- Internet层=网络层
- 数据链路层=数据链路层
- 物理层=物理层
TCP/IP和OSI模型的比较
相同点
- 两者都是以协议栈的概念为基础
- 协议栈中的协议彼此相互独立
- 下层对上层提供服务
不同点
- OSI是先有模型;TCP/IP是先有协议,后有模型
- OSI是国际标准,适用于各种协议栈;TCP/IP实际标准,只适用于TCP/IP网络
- 层次数量不同
TCP特性
- 工作在传输层
- 面向连接协议
- 全双工协议
- 半关闭
- 错误检查
- 将数据打包成段,排序
- 确认机制
- 数据恢复,重传
- 流量控制,滑动窗口
- 拥塞控制,慢启动和拥塞避免算法
TCP包头结构
- 源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口
某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通
信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即65536 - 序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字
节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从
0 开始 - 确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:
我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号 - 数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需
要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有
多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就
是TCP首部最大60字节 - URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只
有当URG=1时才有效 - ACK:表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规
定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段 - PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如
果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到
的数据读走,就会一直停留在TCP接收缓冲区中 - RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放
连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志
的TCP报文段称为复位报文段 - SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报
文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同
意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段 - FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的
数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段 - 窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方
发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value *Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值 - 校验和:提供额外的可靠性
- 紧急指针:标记紧急数据在数据字段中的位置
- 选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长
为:(2^4-1)*4-20=40字节