前言
今天的因特网无疑是有史以来由人类创造的、精心设计的最大系统、该系统由数以千计的计算机设备(计算机、平板电脑、智能手机)彼此相互连接构成,并且还有一批与因特网相互连接的物品比如游戏机、监控系统、汽车、医疗设备、智能眼镜、手表、运动手环等,随着5G时代的到来,万物互联也越来越称为可能,这里推荐一下 尤瓦尔·赫拉利 的《未来简史》,这个人的格局很高,他书中描述的未来也越来越成为现实,他写的文字能让你感觉到你更想变为计算机世界里的一片硅片。
但是,面对互联网如此巨大且迅速的变化,我们能做些什么?我在地铁站等车的时候经常被地铁广告洗脑,鼓吹人工智能发展的多么牛逼,鼓吹大家都成为人工智能的高端型人才,我不能否认这个操作,但是我认为人工智能并不适合每个人,而且人工智能需要的技术和知识储备是巨大的,所以,**与其憧憬成为人工智能的高端型人才,不如把眼下的计算机基础知识学好,你的未来才会有更多的可能性。**毕竟,一切计算力发展的源头都是计算机,也可以说现在互联网一切的衍生物都是计算机的儿子。
说到计算机基础,就不得不提计算机网络,就像人长大后是需要和外界进行交流一样,计算机网络也是计算机彼此通信的必要条件。如果计算机的创造好比新中国成立,那么计算机网络的出现就相当于是改革开放。并且计算机网络是每个软件工程师必须要学好的一门知识。扯了这么多,下面开始进入正题
计算机网络
- 简单介绍:
- 组成部分:硬件,软件,协议
- 工作方式:边缘和核心
- 功能组成:通信子网,资源子网
- 局域网:广播技术;广域网:交换技术(点对点)
- 计算机网络的分类:
- 按传输技术:广播式网络,点对点网络
- 按拓扑结构分类:星形网络,总线型网络,环形网络,网状形网络
- 按数据交换技术分类:电路交换网络,报文交换网络,分组交换网络
- 网络标准化:(non)
- 标准化常见过程:因特网草案->建议标准->草案标准->因特网标准
- 相关组织:ISO,ITU,IEEE
- 网络体系结构:
- 接口:有接口才能够提供服务
- 常见分类:服务数据单元SDU,协议控制信息PCI,接口控制信息ICI,协议数据单元PDU
- 对于“服务”的定义:
- 只有能够被上一层级看得见的才能够称之为服务
- TCP/IP和OS模型的显著区别:
- TCP/IP有7层(多了数据链路层,网络层进行了细分:会话层和表示层),OSI有4层
应用层
- 应用层的细分:
- 会话层:点和点之间的建立,维护和进行释放
- 表示层:数据格式的转换和压缩,便于不同设备进行通信
- 应用层:主要是现成的接口
- 网络应用模型:
- C/S模型
- P2P模型,应用如PPlive Bittorrent等
- 优点:
- 消除了对于服务器计算压力;
- 多个客户机可以共享资源;
- 可扩展性好
- 网络健壮性強,单个结点失效不会影响其他部分结点
DNS系统
- 层次域名空间:
- 结构:三级域名:二级域名:顶级域名=www.google.com
- 注意:不使用其他符号,除-;每一个部分字符不超过63个,整个不超过255个
- 顶级域名分类Top Level Domain:
- 国家顶级域名,如cn, uk,kr等
- 通用域名,如gov,edu
- 基础结构域名.这种域名只有一个,即apra
- 域名解析过程:
- 递归查询
- 本地客户端->本地域名服务器->根域名服务器->顶级域名服务器->权限 域名服务器
- 递归查询
- 递归与迭代相互结合:
- 本地客户端->本地域名服务器
- 本地域名服务器->根域名服务器
- 本地域名服务器->顶级域名服务器
- 本地域名服务器->权限域名服务器
- 本地客户端->本地域名服务器
FTP协议
- 工作步骤:
- 打开端口21进行连接
- 等待客户连接请求,20进行数据接受
- 功能:
- 以用户权限管理方式提供用户对远程FTP服务器上的文件管理功能;
- 以匿名FTP的方式提供公用文件共享的能力;
- 网络文件系统NSF(基于UDP),允许进程打开一个远程文件,并从特定位置开始读取;
电子邮件系统
- 主要过程:
- Send:SMTP->服务器25端口
- Receive:POP3->接受端
- SMTP与MIME的关系
- MIME在SMTP,用户中间,负责转换非ASCII码
万维网
- 内核:URL(统一资源定位符),HTTP(超文本传输协议),HTML(超文本标记语言)
- HTTP协议:基于TCP,一般是端口80
- 常用HTTP请求:GET,POST,PUT,DLETE
传输层(TCP,UDP)
常用设备:路由器
- 主要功能:报文段TCP和用户数据段UDP;
- 负责进程之间的通信
- 为端到端提供流量控制,差错控制
- 提供无连接或者面向连接的服务
- 寻址:
- 传输层是按端口进行寻址;
- 数据链路层是按MAC地址寻址;
- 网络侧是按IP进行寻址
- 端口号的分类:
- 熟知端口:0~2^10;
- 登记端口2^10~3x(2^14),这类端口需要在IANA进行登记;
- 客户端端口号3x2^14~2^16
- 套接字(主机IP:端口号PORT):唯一标识了网络中的某台主机上的某个应用进程;
UDP(20B)
- 主要特点:
- 无需提前建立连接,也无需确认
- 头部短,开销小,时间延迟短
- 支持N:M的形式进行通信,通过在UDP的端口分发实现
- UDP数据报和IP分组的区别(倒序观看):
- 应用层报文
- UDP数据报部分 UDP首部
- IP数据报部分 IP首部
- UDP报文段:
- 组成格式:伪首部:源端口:目的端口:长度:校验和:12B:2B:2B:2B:2B
- 分段的数据一般来说是小于512B
- UDP校验:
- 伪首部主要是用来进行校验和,不向上下两层传输
- 校验常用算法:反码计算后为1正常,否则不正常,丢弃
TCP(80b)
- TCP与网络层虚电路的区别:
- TCP报文段中含有端到端的逻辑通信地址信息,对路由器不可见
- 电路交换是在物理层的一种物理连接
- 虚电路建立是在网络层的建立,不属于物理连接
- 主要特点:
- 面向连接,故不提供广播或多播的服务
- 可靠的交付
- 报文段头部长,开销大
- TCP连接与释放:
- TCP连接需要解决的问题
- 客户端和服务端要通知对方的存在
- 允许双方协商一些参数进行差错控制(如最大窗口值等)
- 能够对运输实体资源进行约定(如:缓存大小,连接表中的项目等)
- TCP连接需要解决的问题
- TCP连接过程:SYN(synchronous建立联机,建立后不再需要),Sequence number(顺序号码),ACK(acknowledgement 确认):
- Client->Server:SYN=1,SEQ=X;
- Server->Client: SYN=1,ACK=1,SEQ=y,ACK=x 1;
- Client->Server: ACK=1,SEQ=X 1,ACK=X 1;
- TCP释放过程:FIN(finish结束)
- 前两步关闭Client->Server,后两步关闭Server->Client
- Client->Server: FIN=1,SEQ=u;
- Server->Client: ACK=1,SEQ=v,ACK=u 1;
- Server->Client: FIN=1,ACK=1,SEQ=w,ACK=u 1;等待2MSL
- Client->Server: ACK=1,SEQ=u 1,ACK=w(U 1) 1;
TCP实现可靠传输的机制:超时,冗余ACK
- 超时:
- new RTTs=(1-a)x old RTTs a x (new RTTo)
- RTO(超时重传时间)=RTTs 4 x RTTd
- RTTd是RTT的加权平均值
- 第一次为1/2 RTTo;
- 非第一次,new RTTd = (1-p)x old RTTd (p)(RTTs-new RTTo),p的值推荐为0.25
- 冗余ACK:回传3个A,表示希望收到 A 1:
- 例:A->B:1,2,3,4,5->1,3,4,5 ;
- 2号丢失无法抵达:B->A:1,1,1->1,1,1
- 例:A->B:1,2,3,4,5->1,3,4,5 ;
TCP拥塞控制
- 流量控制与数据链路层区别:
- 传输层是端到端,数据链路层是相邻结点
- 拥塞控制和流量控制的区别:
- 拥塞控制是指整体网络能够承受的负荷
- 流量控制更强调端口与端口之间来得及接受
- Max s wnd(发送端最大数据量)=Min[rwnd,cwnd]
- 拥塞控制相关算法:
- 慢开始和拥塞避免
- 慢开始算法:
- cwnd= (primary cwnd )^2;
- 每经过一个RTT后,A收到B的确认,于是下一个窗口调整为4;
- 慢开始算法:
- 拥塞避免算法:ssthresh最大拥塞数量的一半
- cwnd<ssthresh:使用慢开始算法
- cwnd=ssthresh:2种算法都可以
- cwnd>ssthresh: 使用拥塞避免算法,线性增加cwnd=old cwnd k
- 慢开始和拥塞避免
- 快重传和快恢复:
- 快重传不是取消计时,而是更早的重传丢失报文
- 连续3个冗余ACK时,直接重传,不必等待计时
- 快恢复定义:当cwnd达到最大值时,从0执行慢开始算法
- 冗余是慢上升,超时才是重开始
网络层(IP,ARP)
- 常用设备:路由器
- 交换机(数据链路层)与路由器区别:交换机之间是同一网络,路由器之间可以不同网络;
- 主要功能:进行异构网络互联,拥有对风暴的控制能力,进行路由转发;
- 拥塞控制,进行路由选择的能力
- 将传输层的报文段分组成数据
- “尽最大努力交付”的含义?
- 不保证一定无差错交付;
- 不保证在某一规定时间内交付;
- 不保证按发送时的顺序交付;
- 不故意丢弃IP数据报,用首部校验和进行确保安全性;
- 不会重复交付;
- 路由与转发:
- 路由选择
- 数据报,每一个分组都进行重新选择;
- 虚电路,一直使用同一个路径直到转发完成;
- 路由选择
- 分组转发:
- 路由器根据转发表将数据转发出去
- 转发表:使得查找过程最优;
- 路由表:需要对网络变化的计算最优
- 拥塞控制:
- 主要:确保能够传送的数据是全局性的问题,涉及所有主机和路由器等因素
- 开环控制:事先考虑到拥塞的各种因素,使得尽量不要出现;
- 闭环控制:事先不考虑拥塞因素,采用监视系统去监视系统的拥塞状况并进行调整
- 路由算法:
- 静态路由:非自适应路由选择,一般手动配置,如NAT转换协议(传输层)
- 动态路由
- 距离-向量路由算法,常见如RIP,RIP采用跳数作为距离量度
- 1.每条路径的目的地
- 2.路径的代价
- 链路状态路由算法,典型如OSPF算法
- 1.在本域内中所有路由器发送信息,采用泛洪法,即路由通过所有输出端口向所有相邻的路由器发送信息;
- 2.发送的信息到相邻路由,“链路状态”就是指费用,距离,时延,带宽;
- 3.只有链路状态发生改变,才用泛洪法向所有路由发送信息
- 距离-向量路由算法,常见如RIP,RIP采用跳数作为距离量度
- 层次路由及路由选择协议:
- 域内路由,即内部网关协议IGP
- RIP
- RIP三要点
- 1.只和路由器交换消息
- 2.交换全部消息,即路由表
- 3.固定时间(如30s)进行交换
- RIP选择的路径不是最短的,但一定是转发次数最少的
- RIP报文最大长度(受制于UDP最大报文512B):4B 25x20B=504B,前4B是首部,后是路由信息
- 优点:实现简单,开销小,收敛过程快;
- 缺点:
- RIP最大跳数为15(16表示不可达),限制了网络规模
- 路由信息是转发全部,会随着网络整体规模呈现指数上升
- 网络出现故障时,更新速度过慢
- RIP三要点
- OSPF
- 基于Dijsktra算法进行计算路由
- 在上层区域用作骨干区域,以连接其他下层域。一般标识符规定为0,0,0,0;
- 每一个区域都至少有一个区域边界路由器;
- 在骨干区域也有一个路由器,实现与其他路由的交换。分层划分增加了交换信息的种类,同时OSPF变得更为复杂,但降低了路由的通信量。
- OSPF适合大规模的自治系统
- 五种分组类型(OSPF按不同类型进行不同传递):
- 1.问候分组
- 2.数据库描述分组
- 3.链路状态请求分组
- 4.链路状态更新分组
- 5.链路状态确认分组
- 域间路由BGP,即外部网关协议EGP:
- BGP4种报文:
- 打开报文Open
- 更新报文Update
- 保活报文keepalive
- 通知报文Notification
IPV4分组:4x8
- IPV4分组形式:
- 标识(版本:首部长度:区分服务):总长度(标志:片偏移)=(4:4:8):(3:13)
- 首部校验和占16位;生存时间TTL占8位,协议占8位
- 在首部中关于长度的标记:首部长度4B,总长度2B,片偏移8B
- 最大传送单元:
- 一个链路层数据报的最大数据量;
- 以太网的MTU为1500字节,广域网一般不超过567字节
- MF和DF(More Fragment和Dont Fragment):
- 是ip首部标志位3B里面有意义的2B
- DF=0,IP数据报才可以被分片
- MF=0, 表示数据报是相应原始数据报的最后一个片
- MF=1,表示相应的原始数据报还有后片
- IPV4地址划分:
- A类:1.0.0.0~126.255.255.255(2^7-1)
- B类: 128.1.0.0~191.255.255.255 (2^7 2^6-1)
- C类:192.0.0.0~223.255.255.255(2^7 2^6 2^5-1)
- D类:224.0.0.0~239.255.255.255(2^7 2^6 2^5 2^4-1)
- E类: 240.0.0.0~254.255.255.255(2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0-1);
- 其中127.0.0.0~127.255.255.255用于环回测试,D类组播,E类科研
- 私有地址:
- A类:10.0.0.0~10.255.255.255.255 1个段
- B类: 172.16.0.0~173.31.255.255 16个段
- C类:192.168.0.0~192.168.255.255 256个段 这也是为什么一般路由器的私有地址是192.168网段
- 特殊地址:全1,本网广播地址:
- 网络地址转换NAT:通过专用网络将内部IP地址转换为外部IP地址;内部IP只用LAN,外部使用WAN,有效解决了IP地址不足的问题
子网划分
- 子网掩码:
- 将IP与子网掩码与运算=真实IP地址
- CIDR:
- 为解决IP地址耗尽而提出的一种措施
- IP地址={网络前缀:主机号}
- 一般采用最长前缀匹配,常用的数据结构是二叉线索树
- DNS作用:
- 将域名解析成ip地址
- 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。
- 我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,
- 这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。
- ARP协议:
- 在同一个路由系统内,通过IP找到相应的硬件MAC地址的协议;
- ARP是网络层,NAT在传输层
- 什么是ARP协议?
- ARP作用: 实质是一张表,存放 IP地址转换为MAC地址对应关系
- 网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。
- IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。
- 数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。
- 2.查看本地ARP缓存:
-
- ARP协议工作在数据链路层,也就是我们我们的二层交换机那一层
- 比如我的电脑ip 是 192.168.1.100 要与 192.168.1.1 通信,但是二层设备无法通过ip地址访问,只认识 MAC地址
- 此时我的电脑就会发送 ARP广播报文,所有连接到这台交换机的主机都能收到: “谁是 192.168.1.1 请回话给 192.168.1.100”
- 使用Wireshark抓取ARP报文:
DHCP协议
- DHCP协议(基于UDP应用层协议)
- DHCP客户端->DHCP服务端:客户端广播DHCP discover消息
- DHCP服务端->DHCP客户端:服务器提供地址租约offer
- DHCP客户端->DHCP服务端:客户端选择并请求地址租用
- DHCP服务端->DHCP客户端:服务器确认将地址租用给客户端
- DNS作用
- DHCP(动态主机配置协议)是一个局域网的网络协议,常被应用在大型的局域网络环境中。
- 指的是由服务器控制一段lP地址范围,客户机登录服务器时就可以自动获得服务器分配的lP地址和子网掩码。
- 2.DHCP原理简析
- 目的:DHCP客户端以广播的形式发送Discover包(主机并不知道DHCP的服务器的位置)
- 发送者:源ip是0.0.0.0
- 发送方式:目标ip是255.255.255.255,也就是网段内所有安装了TCP/IP协议的主机/服务器
- 响应者:DHCP服务器会分配ip给
ICMP协议
- 功能:
- 确认IP包是否成功到达目的地址
- 通知在发送过程中IP包被丢弃的原因
- 五种差错类型:
- 1.终点不可达
- 2.源点抑制
- 3.时间超过
- 4.参数问题
- 5.改变路由
- 询问四种类型:
- 回送请求和回答报文
- 时间戳请求和回答报文
- 时间戳请求和回答报文
- 掩码地址请求和回答报文
- 路由器和通告报文
- PING协议(基于网络层ICMP协议直接封装的应用层协议,未使用传输层协议)
- IPV6
- 基本格式:将原先的32位扩充到128位,8组,每组4个16(2^4)进制数
- IPV6首部是8B(8x8),IPV4首部是4B(4x8)
- 3种地址类型:单播地址,组播地址,任播
- 单播:优先点对点;
- 组播:数据包交付到一组计算机中;
- 任播:目的地址是一组主机,交付时只交付给其中一个;
- 移动IP
- 分为:移动结点,归属代理和外阜代理(移动代理)
- 移动结点:具有永久IP地址的移动结点
- 本地代理:一个移动结点归属的网络
- 外部代理:在外部网络中完成移动管理功能的实体
- 实现移动IP的技术?
- 代理搜索,判断是否漫游;
- 申请转交地址
- 登录
- 建立隧道
- 移动IP通信特点:每移动更新一个基站就更新转交地址(辅地址),但主地址不会改变。
- 路由器中的输入输出产生溢出是造成分组丢失的重要原因
数据链路层(MAC,LLC)
- 数据链路层以上的设备可以隔离冲突域,传输层以上可以隔离广播域
- 常用设备:交换机,网桥
- 网桥
- 透明网桥:
- 选择的不是最佳路由
- 网桥在收到一个帧后无进行自学习,然后增加一个项目
- 源LAN和目的LAN相同,丢弃
- 源LAN和目的LAN不同,转发
- 目的LAN未知,扩散
- 透明网桥:
- 网桥
- 源路由网桥:
- 选择的是最佳路由
- 源路由对于主机是不透明的
- 使用应答帧和发送帧来确定网络的最佳路由
- 存储转发交换模式
- 交换机
- 实质:多端口网桥,并且使宽带速率不下降
- 总容量计算方式:
- 全双工 端口数x带宽数
- 半双工 1/2x 端口数x带宽数
- 交换模式:直通交换和存储转发交换
- 直通交换
- 只检查帧的目的地址,但缺乏智能性和安全性
- 存储转发交换
- 检查数据是否正确,确认无误后通过查找表转换输出端口将帧发送出去
- 直通交换
- 主要功能:
- 为网络层提供服务
- 将IP数据报组装成帧
- 具备差错校验,流量控制,成帧
- 提供的主要服务:
- 有确认,无确认的无连接服务
- 有确认的面向连接的服务
- 4种组帧的方法:
- 字符计数法
- 首字段用一个计数字段来表明该帧的字节数
- 首4个字符,尾5个字符
- 计数字节提供的字节数保护你自身所占的一个字节
- 如果计数在传输中出现差错,接收方就无法判断所传输的帧的接收位
- 字符计数法
- 首尾定界法:
- 开始DLE STX;结束DLE ETX
- 过程:
- 1.网络层发出的数据 DLE STX |A DLE B| DLE ETX
- 2.经数据链路层填充后的数据 DLE STX | A DLE DLE B|DLE ETX
- 3.接收方传送的网络 DLE STX | A DLE B|DLE ETX
- 比特填充的首尾标志法:
- 典型的连续5个1则加0
- 1.原始数据:111111
- 2.零比特进行填充后 1111101
- 3.接收方收到数据后,一旦遇到5个连续1就去掉后面的0
- 物理编码法(IEE802采用此标准):
- 利用物理介质上的违法标志来区分帧的开始和结束
- PPP用来进行帧界定的字段为OXTE
- Mac帧在首尾界定法时不需要开始帧和结束帧来进行区分
- 差错控制:
- 奇偶校验
- 循环冗余码(异或校验)
- 纠错编码:海明码
- 流量控制与可靠传输:
- 自动重传请求ARQ,传统ARQ分为停止等待,后退N帧,选择重传三种方式
- 停止-等待协议
- 发送=1,接收=1,如果接收方不返回应答,则发送方必须一直等待
- 停止-等待协议
- 滑动窗口流量控制
- 后退N帧GBN,累计确认
- 选择重传,不按序接受,非累计
- 可靠传输机制:确认,超时重传两种机制
- 自动重传请求ARQ,传统ARQ分为停止等待,后退N帧,选择重传三种方式
- 信道吞吐率=信道利用率x发送方的发送速率
- 介质访问控制:
- 信道
- 时分
- 频分
- 波分
- 码分
- 信道
- 随机和轮询是动态分配信道的方法:
- 随机协议
- ALOHA协议
- 当需要发送时,不进行任何检测就发送数据;
- 如果一段时间内没有收到确认,该结点就认为传输过程中发生了冲突
- 缺点:信道利用率低
- 随机协议
- CSMA协议
- 即共享信道频率又共享时间,是一种真正的动态复用技术
- 任意两个不同站的码片向量正交一定为0,表示没有发送数据
- 任意站点的码片向量与改码片的规格内积化为1,表示发送了1比特数据
- 内积化为-1,表示接受了比特数
- 码分多路复用具有抗干扰能力强,保密性強,语言质量优等优点,这可以减少投资和运行成本。主要用于无线通信系统,特别是移动通信系统
- 三种策略:
- l-坚持CMSA
- 当发送结点监听到信道空闲时,立即发送数据,否则继续监听
- P-坚持CSMA
- 以概率p发送数据;在概率1-p时不进行发送
- 非坚持CSMA
- 与l不同的是,会延迟一段时间进行监听
- l-坚持CMSA
- CSMD协议 :半双工
- 半双工工作在同一信道,所以肯定用CSMA/CD冲突检测协议
- CSMA/CD协议
- 带冲突检测的载波帧听多路访问协议
- 解决问题的方法:CSMA机制中多个传送造成冲突,但是即使是冲突了。CSMA也要将帧发送完,但总线的利用率整体上降低
- 在发送前:检测总线上是否有其他设备在发送数据;若有,则不发送计算机,若没有,则进行发送数据。
- 在发送时:如果产生冲突,采用截断二进制指数类型退避算法;
- 截断二进制指数类型退避算法
- 特点:先听后发,边听边发,冲突停发,随机重发
- 发生碰撞在停止发送数据后,需要推迟一个随机时间才能发送数,退避的时间按照以下算法计算:
- 1.确定基本退避时间,一般取争用期2t
- 2.定义重传参数k,k=Min[重传次数,10].可见。
- 当重传次数不超过10时,参数k等于重传次数;
- 当重传次数超过10时,k就不再增大而一直等于10;
- 3.从整数集合{0,1,.....,2^k-1}中随机选择一个数记为r,重传所需时延就是r信的基本退避时间。即2rt
- 4.当重传次数达到16b仍然不能成功的时候,说明网络太拥挤,直接丢弃帧,并向高层报告。
- 设置最大和最小帧长的原因?
- 最小帧:区分噪声和因发生碰撞而异常终止的短帧;
- 最大帧:保证每个站点能够公平竞争到以太网;因为如果某个站发送特别长的帧,那 其他帧就必须等待很长时间才能发送数据
- <64b的帧都是由于冲突而异常无效的帧;发送小于64b,以太网会将其加长至最小64b的帧
- 无法应用于WIFI的原因:
- 1.接收信号强度往往会小于发送信号的强度,且在无线介质上信号强度动态变化范围很少,因此,碰撞检测必须在硬件上花费更大
- 2.无线通信中,并非所有的站点都能够听见对方,即“隐蔽站”的问题。IEEE802.11标准进行定义
- CSMA/CA协议 全双工:
- 全双工通信不需要CSMA/CD冲突检测机制
- 主要用于无线环境
- 三种碰撞避免机制:预约信道,ACK帧,RTS/CTS帧
- 预约信道:提前通知自己传输数据需要的时间长度;
- ACK帧:收到数据帧后,回传一个ACK,如果未收到这代表失败,类似于TCP;
- ATS/CTS帧:是可选的碰撞避免机制,主要用于解决无线网中的隐蔽站问题;
- CSMA/CD与CSMA/CA对比:
- 冲突区别:CSMA/CD可以检测冲突但无法避免,CSMA/CA直接不提供检测冲突
- 传输介质不同:CSMA/CD作用于以太网,CSMA/CA主要用于无线局域网,IEEE802.11 a/b/n等
- 检测方式不同:CSMA/CD主要通过电缆中电压的变化来检测,CSMA/CA使用能量检测,载波检测,能量载波,混合检测三种检测信道的空闲方式
- CSMA/CD发送前监听,边发送边监听,一旦碰撞马上停止发送;CSMA/CA是在发送前告知,让其他结点暂时不发送,来避免碰撞。
- 轮询协议:令牌传递
- 令牌:一组特殊的比特组合而成的帧,帧中包含目的地址
- 轮询访问非常适合高负载的广播信道。因为令牌环网采用各种轮流使用令牌发送数据,无论负载如何,都没有冲突产生。
局域网
- 主要介质:双绞线,UTP5类以上的线支持所有
- 介质访问控制方法:CSMA/CD,令牌总线都作用于总线型网,令牌环主要作用于环形网
- 拓步结构:星形,环形,总线形,树形
- 以太网:
- 工作原理:
- 采用无连接的服务
- 不对数据进行编号和确认
- 只提供尽最大努力交付的不可靠服务,差错的纠正主要依靠传输层的TCP
- MAC帧固化在ROM中
- 6B(48位)
- 高3位为为厂商代码,最后24到3位为厂商自行分配的网卡序号
- 数据链路层上帧即加首部地址,也加尾部地址(MAC)
- 插入字节:目的地址:源地址:类型:IP数据报:FCS校验=8:6:6:2:(1500-46):4
- 首部插入8,使得接受端和发送端进行时钟同步
- 802.3帧格式与DIX以太帧格式的不同之处
- 帧起始标志法:与802.4和802.5相兼容
- 长度城:替代3DIX帧中的类型域,指出数据域的长度
- 高速以太网
- 10base-T:CSMA/CD半双工;全双工
- 吉比特:允许1G bit/s下全双工和半双工两种工作方式;CSMA/CD仍然半双工
- 工作原理:
- 无线局域网:
- 有固定基础设施
- IEEE 802.11标准规定最小构件为基本服务集,因此,BSS中的基站为接入点(AP)
- 一个服务集可以是孤立的,也可以通过接入主干分配系统DS,然后接入到另一个基本服务框架,构出扩展的服务集(Extended Service Set,ESS)
- 无固定基础设施
- 无上诉基础服务的集中接入点,而是由于一些处于平等状态的移动站之间相互通信组成的临时网络。
- 这些移动站也具有路由器的功能
- IEEE 802.11标准中的物理层
- 跳频扩频FHSS
- 直接序列扩频DSS
- 红外线IR
- IEEE 802.11标准中的MAC
- 分布协调功能DCF
- 点协调功能PCF
- IEEE 802.11在CSMA/CA上增加确认子层
- 令牌环网:一种特殊的MAC帧
- 基本原理:以IBM的TOKEN Ring为例
- 1.当网络空闲时,环路中只有令牌环传递
- 2.有数据到达站点时,该站点修改令牌中的一个标志位,并在令牌中附加数据,这样令牌变成了一个数据帧
- 3.沿着环路进行传输,校验,有错误就重传
- 4.传递完数据后重新产生一个令牌进入下一段
- 基本原理:以IBM的TOKEN Ring为例
广域网
- 广域网不能够使用广播通信,而应该使用点对点通信,使用交换机转发
- 广域网强调资源共享,局域网强调数据传输;
- 广域网在OSI上有,物理,数据链路,网络三层,局域网缺少网络层
- HDLC:
- 两种基本配置:
- 平衡配置:链路两端都是复合站,每个复合站都可以平等的数据传输而不需要得到对方复合站的允许
- 非平衡配置:一个主站控制整个链路的工作
- 3种类型:主站,从站,复合站
- 3种数据操作方式:正常响应,异步平衡方式,异步响应方式
- 正常响应:非平衡结构的。主站->从站,从站需要确认才能响应;
- 异步平衡方式:任一一个复合站都可以进行对另一战的数据传输
- 异步响应方式:非平衡,主站确认才能进行传输
- 两种基本配置:
- HDLC信息帧使用了编号和确认机制,能够提供可靠传输
- PPP:
- 为改进SLIP无法寻址,数据校验,分组类型且只能传递IP分组的现状,制定了PPP协议
- 是一个面向字节的协议
- PPP仅仅保证点对点的通信,支持全双工
- 组成部分:
- 链路控制协议LCP:用于建立,配置,测试和管理数据网络
- 网络控制协议NCP:允许同时采用多路网络协议,每个不同的网络要采用相应的NCP进行配置
- 提供端到端的传输,检测由高层协议控制,如工作在传输层的socket
- LLC(逻辑链路控制)
- MAC(媒体地址控制):802协议中只有MAC
- 物理层(模拟信号,数字信号,串行传输,并行传输,单工通信,半双工通信,双工通信)
- 主要任务:透明的传输比特流,并为数据端设备提供数据通路
- 常用设备:网卡,中继器,集线器
- 中继器:将信号整理放大再转发,遵循5-4-3规则,4个中继器的5段信号介质,只可以挂载3个主机
- 集线器,解决物理口过少的问题,只能工作在半双工网络
- 传输介质:
- 无线:无线电波,微波,红外线和激光
- 有线:双绞线,同轴电缆,光纤
- 传输方式:并行传输和串行传输
- 并行传输:距离短,速度快
- 串行传输:距离长,速度慢
- 通信方式:同步通信和异步通信
- 通信基础
- 数据和信号
- 数据是传送信息的实体,且取值一般是固定的几个值如0,1
- 信号是数据的电气和电磁表现,是连续变化的
- 信道和电路并不等同,信道是信号的传输介质
- 码元是一个固定时长的脉冲信号,因此是数字信号;
- 码元传输速率:单位时间,数字通信传输的码元个数。单位波特Baud
- 信息传输速率:单位时间,数字通信传输的二进制个数,即比特数。单位b/s
- 若一个码元携带nbit信息,M Baud的码元传输速率对应的信息传输速率是mxn bit/s
- C=B log L;C表示比特率,B是码元,L是离散值
- 在模拟信号中,带宽=高频-低频
- 数据和信号
- Nyquist定理:
- V=2w log I;其中w表示带宽,I表示级数,一般I=mxn,m表示种类,n表示方式种类
- Shannon公式:
- V=W log(1 S/N) ;
- w为信道带宽,S为信道所传输信号的平均功率,N为信道内部的高斯噪声比;
- 例:信躁比=10 log10/(S/N) ;
- S/N等于10时,信噪比为10db,S/N等于1000时,信躁比为30db
- Shannon从另一个侧面上反应了一个码元所对应的二进制数量是有限的
- 通信方式:单工,半双工(CSMA/CD),全双工(CSMA/CA)
- 编码与调制
- 数字数据->数字信号:
- 1.非归零码NRZ
- 低电频表示0,高电频表示1
- 容易实现,无检错,无法判断开始
- 2.曼彻斯特码 Manchester Encoding
- 以太网的主要传输方式
- 高电频->低电频(下降):0
- 低电频->高电频(上升):1
- 3.差分曼彻斯特码
- 主要用于局域网传输
- 可实现同步且抗干扰能力强
- 前半个码元与上后半个相同,表示1
- 前半个码元与上后半个不同,表示0
- 4.4B/5B编码
- 1.非归零码NRZ
- 数字数据->数字信号:
- 数字数据->模拟信号:分别通过改变幅移,频移,相移来表示0和1
- 1.幅移键控:ASK
- 2.频移键控:FSK
- 3.相移键控:PSS
- 4.正交振幅调制:QSK,在频率相同的条件下,将ASK和PSK相结合
- 模拟数据->数字信号:
- 脉冲调制PCM
- 在采样定理中,f采样>=2f(max)
- 调制过程:
- 抽样->量化->编码
- 脉冲调制PCM
- 模拟数据->模拟信号:
- 时分TDM
- 频分FDM
- 波分WDM
- 码分CDM
- 数据交换方式:
- 电路交换
- 优点:时间延迟小,有效传输,无冲突,有序到达,简单易控制
- 缺点:连接时间长,线路独占,效率低,灵活性差,难以规格化
- 报文交换
- 优点:无需建立连接,动态分配,提高可靠性和利用率
- 缺点:无大小限制,需要大缓存,会计算往返时间,类似TCP
- 电路交换
- 分组交换:
- 优点:无建立时间延迟,线路利用率高,简化了存储管理,加速传输,减少出错机率和重发数量
- 缺点:存在传输时延,需要额外的信息量,分组交换采用数据服务,时间先后顺序不一致,会出现丢失和重发
- 数据报与虚电路的区别:类似UDP与TCP
- 数据报建立不需要建立连接,虚电路必须有
- 数据报不保证分组有序到达,虚电路保证
- 数据报传输过程中出现故障不会影响分组数据,虚电路会阻塞