一、
2. 网络分类
个域网PAN( Personal Area Network )
- 能在便携式消费电器与通信设备之间进行短距离通信的网络
- 覆盖范围一般在10米半径以内,如蓝牙耳机等
局域网LAN(Local Area Network)
- 局部地区形成的区域网络,如企业网络
- 分布地区范围有限,可大可小,大到一栋建筑、小到办公室内的组网
- 电脑WLAN接入,打印机共享等等
城域网MAN(Metropolitan Area Network )
- 范围覆盖一个城市的网络
广域网WAN(Wide Area Network)
- 覆盖很大地理区域,乃至覆盖地区和国家
3. 接入网
接入网的用途
- 接入网的用途是将主机连接到边缘路由器上
- 边缘路由器是端系统Host去往任何其他远程端系统的路径上的第一台路由器
4. 网络核心两大功能
- 路由 确定数据分组从源到目标所使用的路径(全局操作)
- 转发 路由器或交换机将接收到的数据分组转发出去(即移动到该设备的某个输出接口)(本地操作)
二、物理层
- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
- 物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。
- 用于物理层的协议也常称为物理层规程 (procedure)。
1. 物理介质
光纤
高速点对点
双绞线
电话线为1对双绞线,网线为4对双绞线,广泛用于计算机网络(以太网)双向传输
同轴电缆
两根同心铜导线,双向传输
无线电(陆地无线电、卫星无线电信道)
电磁频谱中各种“波段”携带的信号
半双工(发送方到接收方)
Half Duplex, 一个时间段内只有一个动作发生
无线局域网(WiFi)
10-100 Mbps;10米广域(如3/4/5G蜂窝)
在~10公里范围内蓝牙:短距离,有限速率
2. 数据交换方式
分组交换
分组交换采用把一个个小的数据包存储转发传输来实现数据交换。
不具有实时性
会丢包
电路交换
建立连接、数据传输、释放连接
三、数据链路层
1. 功能
成帧 (Framing)
将比特流划分成“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助“帧”的各个域来实现
差错控制 (Error Control)
处理传输中出现的差错,如位错误、丢失等
流量控制 (Flow Control)
确保发送方的发送速率,不大于接收方的处理速率,避免接收缓冲区溢出
2. 数据链路层提供的服务
1.无确认 无连接 服务( Unacknowledged connectionless )
- 接收方不对收到的帧进行确认
- 适用场景:误码率低的可靠信道;实时通信;
- 网络实例:以太网
2.有确认 无连接 服务( Acknowledged connectionless )
- 每一帧都得到单独的确认
- 适用场景:不可靠的信道(无线信道)
- 网络实例:802.11
3.有确认 有连接 服务( Acknowledged connection-oriented )
- 适用场景:长延迟的不可靠信道
3. 成帧(Framing)
要解决的关键问题:如何标识一个帧的开始?
接收方必须能从物理层接收的比特流中明确区分出一帧的开始和结束,这个问题被称为帧同步或帧定界
关键:选择何种定界符?定界符出现在数据部分如何处理?
framing方式包括:
带比特填充的定界符法
定界符:两个0比特之间,连续6个1比特,即01111110,0x7E
物理层编码违例
核心思想:选择的定界符不会在数据部分出现
4. 媒体接入控制
数据链路层分为两个子层:
MAC子层:介质访问 紧挨物理层
LLC子层:承上启下(弱层)紧挨网络层
MAC (Medium Access Control)子层
4.1 无线局域网WLAN
无线局域网(Wireless Local Area Network,WLAN):指以无线信道作为传输介质的计算机局域网
4.2 虚拟局域网VLAN
4.2.1 广播域
广播域(Broadcasting Domain)
- 广播域是广播帧能够到达的范围;
- 缺省情况下,交换机所有端口同属于一个广播域,无法隔离广播域;
- 广播帧在广播域中传播,占用资源,降低性能,且具有安全隐患。
4.2.2 概况
VLAN是一个在物理网络上根据用途,工作组、应用等来逻辑划分的局域网络,与用户的物理位置没有关系。
将一个物理意义上的LAN划分为若干个VLAN,不同VLAN的成员不能直接进行二层通信。
不同VLAN成员需要通过三层设备,(通过路由器或三层交换机进行VLAN间路由,)实现VLAN间通信。
VLAN类型:
- 基于端口的VLAN
- 基于MAC地址的VLAN
- 基于协议的VLAN
- 基于子网的VLAN
四、网络层
1. 网络层概述
网络层在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。
2. 网络层关键功能
- 路由(控制面)
- 选择数据报从源端到目的端的路径
- 核心:路由算法与协议
- 转发(数据面)
- 将数据报从路由器的输入接口传送到正确的输出接口
3. Internet网际协议
3.1 IPv4
3.1.1 概述
IPv4协议,网际协议版本4,一种无连接的协议,是互联网的核心,也是使用最广泛的网际协议版本,其后继版本为IPv6
Internet协议执行两个基本功能
- 寻址(addressing)
- 分片(fragmentation)
相关问题与解决思路:
- 为解决IPv4数据报长度大于传输链路的MTU的问题,通过分片机制解决:标识、标志、片偏移
- 防止循环转发浪费网络资源(路由错误、设备故障…),通过跳数限制解决:生存时间TTL
- IP报头错误导致无效传输,通过头部机校验解决:首部校验和
注意:
- 分组packet是网络层的概念,帧frame是数据链路层的概念
- 帧由头标、有效载荷和尾标组成
3.1.2 IP数据报
IPv4数据报由首部和数据两部分组成,首部包含:
- 版本: 4bit ,表示采用的IP协议版本
- 首部长度: 4bit,表示整个IP数据报首部的长度
- 区分服务: 8bit ,该字段一般情况下不使用
- 总长度: 16bit ,表示整个IP报文的长度,能表示的最大字节为2^16-1=65535字节
- 标识: 16bit , IP软件通过计数器自动产生,每产生1个数据报计数器加1;在ip分片以后,用来标识同一片分片
- 标志: 3bit,目前只有两位有意义。
MF,置1表示后面还有分片,置0表示这是数据报片的最后1个;
DF,不能分片标志,置0时表示允许分片 - 片偏移: 13bit,表示IP分片后,相应的IP片在总的IP片的相对位置
- 生存时间TTL(Time To Live) :8bit,表示数据报在网络中的生命周期,用通过路由器的数量来计量,即跳数(每经过一个路由器会减1)
- 协议:8bit,标识上层协议(TCP/UDP/ICMP…)
- 首部校验和:16bit ,对数据报首部进行校验,不包括数据部分
- 源地址:32bit,标识IP片的发送源IP地址
- 目的地址:32bit,标识IP片的目的地IP地址
- 选项:可扩充部分,具有可变长度,定义了安全性、严格源路由、松散源路由、记录路由、时间戳等选项
- 填充:用全0的填充字段补齐为4字节的整数倍
数据报分片的原因是数据报长度大于传输链路的MTU
MTU(Maximum Transmission Unit), 最大传输单元
- 链路MTU
- 路径MTU (Path MTU)
3.2 IP地址
3.2.1 概述
IP地址,网络上的每一台主机(或路由器)的每一个接口都会分配一个全球唯一的32位的标识符
将IP地址划分为固定的类,每一类都由两个字段组成
网络号相同的这块连续IP地址空间称为地址的前缀,或网络前缀
IP地址共分为A、B、C、D、E五类,A类、B类、C类为单播地址
IP地址的书写采用点分十进制记法,其中每一段取值范围为0到255
A,B,C类单播地址由net-id和host-id构成
3.2.2 子网划分
- 子网划分(subnetting),在网络内部将一个网络块进行划分以供多个内部网络使用,对外仍是一个网络
- 子网(subnet ),一个网络进行子网划分后得到的一系列结果网络称为子网
- 子网掩码(subnet mask ),与 IP 地址一一对应,是32 bit 的二进制数,置1表示网络位,置0表示主机位
- 子网划分减少了 IP 地址的浪费、网络的组织更加灵活、便于维护和管理
3.3 DHCP动态主机配置协议
DHCP :动态主机配置协议
当主机加入IP网络,允许主机从DHCP服务器动态获取IP地址
可以有效利用IP地址,方便移动主机的地址获取
工作模式:客户/服务器模式( C/S )
基于 UDP 工作,服务器运行在 67 号端口, 客户端运行在 68 号端口
DHCP服务不只返回客户机所需的IP地址,还包括缺省路由器IP地址,DNS服务器IP地址,网络掩码
3.4 ARP地址解析协议
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。
IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。
数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。
通过目的IP地址而获取的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。
IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部
IP数据报经过不同链路时,IP数据报中封装的IP地址不发生改变,而MAC帧中的硬件地址发生改变
3.4.1 路由到另一个局域网
由主机A经路由器R传输到E的部分过程如下:
- A创建IP数据包(源为A、目的为E)
- 在源主机A的路由表中找到路由器R的IP地址223.1.1.4
- A根据R的IP地址223.1.1.4,使用ARP协议获得R的MAC地址
- A创建数据帧(目的地址为R的MAC地址)
- 数据帧中封装A到E的IP数据包
- A发送数据帧,R接收数据帧
3.4.2 工作过程
ARP协议的工作过程如下:
A已知B的IP地址,需要获得B的MAC地址(物理地址)
如果A的ARP表中缓存有B的IP地址与MAC地址的映射关系,则直接从ARP表获取
如果A的ARP表中未缓存有B的IP地址与MAC地址的映射关系,则A广播包含B的IP地址的ARP query分组
注意:在局域网上的所有节点都可以接收到ARP query
B接收到ARP query分组后,将自己的MAC地址发送给A
A在ARP表中缓存B的IP地址和MAC地址的映射关系
注意:超时时删除
3.5 网络地址转换(NAT)
定义
网络地址转换(NAT)用于解决IPv4地址不足的问题,是一种将私有(保留)地址转化为公有IP地址的转换技术
NAT的优势
- 节省合法地址,减少地址冲突
- 灵活连接Internet
- 保护局域网的私密性
3.6 ICMP: 互联网控制报文协议
ICMP: Internet Control Message Protocol
- ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告
- 由主机和路由器用于网络层信息的通信
- ICMP 报文携带在IP 数据报中: IP上层协议号为1
ICMP报文类型
- ICMP 差错报告报文
- 终点不可达:不可达主机、不可达网络,无效端口、协议
- ICMP 询问报文
- 回送请求/回答 (ping使用)
4. 路由算法
距离向量路由
链路状态路由
层次路由
广播路由
5. Internet路由协议
路由协议
- 内部网关协议 IGP: 有 RIP 和、OSPF、ISIS 等多种具体的协议
- 外部网关协议 EGP:目前使用的协议就是 BGP
5.1 路由选择协议
路由选择协议RIP( Routing Information Protocol)是基于距离矢量算法的协议
使用跳数衡量到达目的网络的距离
- RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”
- RIP 允许一条路径最多只能包含 15 个路由器
RIP协议的基本思想
- 仅和相邻路由器交换信息
- 路由器交换的内容是自己的路由表
- 周期性更新:30s
RIP协议的特点:
- 算法简单,易于实现
- 收敛慢
- 需要交换的信息量较大
RIP协议的适用场合:
- 中小型网络
5.2 BGP 外部网关路由协议
边界网关协议BGP (Border Gateway Protocol)
- 目前互联网中唯一实际运行的自治域间的路由协议
6. 路由器的工作原理
路由器是互联网最主要的网络设备,包含2个核心功能
- 控制层:运行各种路由协议:BGP、OSPF、RIP,学习去往不同目的的转发路径:路由表
- 数据层:根据上述路由表,将收到的IP分组转发到正确的下一跳链路
7. 拥塞控制
拥塞
网络中存在太多的数据包导致数据包传输延迟或丢失,从而导致网络吞吐量下降
拥塞控制(congestion control)
需要确保通信子网能够承载用户提交的通信量,是一个全局性问题,涉及主机、路由器等多种因素
8. 服务质量
什么是网络服务质量?(QoS, Quality of Service)
QoS是网络在传输数据流时要满足一系列服务请求,具体可以量化为带宽、时延、抖动、丢包率等性能指标
9. 三层交换
9.1 三层交换的技术背景
二层交换网络中的广播,限制了网络规模的扩展
交换机对目标地址无法匹配的数据帧进行广播转发
交换机对目标地址为广播地址的数据帧进行广播转发
交换机为维护生成树状态产生大量的桥协议数据单元(Bridge Protocol Data Unit,BPDU)
这些广播帧会大量消耗网络资源,并频繁影响用户的数据通信
VLAN虽然可以将广播的影响限定在一定范围内,但同时也隔离了正常的用户间数据通信
传统路由器致力于解决VLAN间互联互通,但是其转发效率和拓扑复杂性带来的网络通信瓶颈无法有效应对规模扩展
9.2 三层交换的动机
- 利用第三层协议中的信息来加强第二层交换功能,形成带有路由功能的交换
- 融合VLAN 间的二层隔离和三层互通,消除大规模网络中广播对性能的影响
- 简化网络配置,简化网络拓扑,优化网络管理,降低网络部署成本
10. VPN的原理
- VPN指利用公用网络架设专用网络的远程访问技术
- VPN通过隧道技术在公共网络上模拟出一条点到点的逻辑专线,从而达到安全数据传输的目的
用户主机和被访问节点的网关必须都支持隧道协议
11. IPv6协议
初始动机:应付“32-bit地址空间耗尽”问题(CIDR和NAT都无法从根本上解决地址短缺问题),增加地址空间
IPv6 地址
地址长度为128bit,是IPv4地址长度的4倍
IPv6地址空间数量约为3*1038
IPv6地址表示法,冒分十六进制,x : x : x : x : x : x : x : x
- 简化方法:每个x前面的0可省略,可把连续的值为0的x表示为“::”, 且“::”只能出现1次
- 简化前地址,2001:0DA8:0000:0000:200C:0000:0000:00A5
- 简化后地址,2001:DA8:0000:0000:200C::A5
五、传输层
1. 传输层概述
传输层位于应用层和网络层之间:
- 基于网络层提供的服务,向分布式应用程序提供通信服务
按照因特网的“端到端”设计原则:
- 应用程序只运行在终端上,即不需要为网络设备编写程序
站在应用程序的角度:
- 传输层应提供进程之间本地通信的抽象:即运行在不同终端上的应用进程仿佛是直接连在一起的
1.1 套接字
设想在应用程序和网络之间存在一扇“门”:
- 需要发送报文时:发送进程将报文推到门外
- 门外的运输设施(因特网)将报文送到接收进程的门口
- 需要接收报文时:接收进程打开门,即可收到报文
在TCP/IP网络中,这扇“门”称为套接字(socket),是应用层和传输层的接口,也是应用程序和网络之间的API
1.2 传输层提供的服务
因特网的网络层提供“尽力而为”的服务:
- 网络层尽最大努力在终端间交付分组,但不提供任何承诺
- 具体来说,不保证交付,不保证按序交付,不保证数据完整,不保证延迟,不保证带宽等
传输层的有所为、有所不为:
- 传输层可以通过差错恢复、重排序等手段提供可靠、按序的交付服务
- 但传输层无法提供延迟保证、带宽保证等服务
具体而言,传输层提供的服务有:
最低限度的传输服务:
- 将终端-终端的数据交付扩展到进程-进程的数据交付
- 报文检错
增强服务:
- 可靠数据传输
- 流量控制
- 拥塞控制
因特网传输层通过UDP协议和TCP协议,向应用层提供两种不同的传输服务:
- UDP协议:仅提供最低限度的传输服务
- TCP协议:提供基础服务和增强服务
2. 传输层基本服务:复用和分用
2.1 概述
传输层基本服务:将主机间交付扩展到进程间交付,通过复用和分用实现。
发送端复用:
发送方传输层从多个套接字收集数据,将套接字标识置于数据(报文段)中,交给网络层发送接收端分用:
接收方传输层根据报文段中的套接字标识,将从网络层收到的数据(报文段)交付到正确的套接字
2.2 套接字标识与端口号
端口号是套接字标识的一部分:
每个套接字在本地关联一个端口号
端口号是一个16比特的数
端口号的分类:
熟知端口:0~1023,由公共域协议使用
注册端口:1024~49151,需要向IANA注册才能使用
动态和/或私有端口:49152~65535,一般程序使用
- 报文段中有两个字段携带端口号:
- 源端口号(source port):与发送进程关联的本地端口号
- 目的端口号(dest port):与接收进程关联的本地端口号
2.3 TCP/UDP套接字
UDP套接字
- 使用<IP地址,端口号>二元组标识UDP套接字
- 服务器使用一个套接字服务所有客户
TCP套接字
- 使用<源IP地址,目的IP地址,源端口号,目的端口号> 四元组标识连接套接字
- 服务器使用一个监听套接字和多个连接套接字服务多个客户,每个连接套接字服务一个客户
3. 无连接传输:UDP
为什么需要UDP?
- 应用可以尽可能快地发送报文:
- 无建立连接的延迟
- 不限制发送速率(不进行拥塞控制和流量控制)
- 报头开销小
- 协议处理简单
UDP适合哪些应用?
- 容忍丢包但对延迟敏感的应用:
如流媒体 - 以单次请求/响应为主的应用:
如DNS - 若应用要求基于UDP进行可靠传输:
由应用层实现可靠性
4. 面向连接的传输:TCP
4.1 可靠传输
数据包有序、无差错到达接收端
如何实现可靠传输,基本原则是什么?
- 利用ACK确认
- 重传机制
- 差错检测
三次握手:确定双方都同意建立连接,并初始化连接参数(seq,ack等)
四次挥手:目的就是确保断开连接时双方都是确认结束的状态
4.2 流水线技术
4.3 TCP报文段结构
U,A,P,R,S,F标志位:
ACK表示确认序号有效
SYN用于建立连接
FIN用于终止连接
发送序号:数据载荷中第一个字节在字节流中的序号
确认序号:期望接受的下一个字节的序号
5. TCP流量控制
6. 拥塞控制
六、应用层
1. 应用层概述
每个应用层协议都是为了解决某一应用问题,通过位于不同主机中的多个应用进程之间的通信和协同工作来完成
- 两台主机通信实际是其对应的两个应用进程(process)在通信
- 应用进程: 为解决具体应用问题而彼此通信的进程
应用层的具体内容就是规定应用进程在通信时所遵循的协议
客户/服务器(C/S, Client/Server)方式
C/S方式可以是面向连接的,也可以是无连接的
面向连接时,C/S通信关系一旦建立,通信就是双向的,双方地位平等,都可发送和接收数据
客户进程在进行通信时临时成为客户,它也可在本地进行其它的计算;在打算通信时主动向远地服务器发起通信
客户方必须知道服务器进程所在主机的IP地址才能发出服务请求
服务器进程被动等待并接受来自多个客户的通信请求, 必须始终处于运行状态才有可能提供服务
对等(P2P,Peer to Peer)方式
- 对等方式是指两个进程在通信时并不区分服务的请求方和服务的提供方
- 只要两个主机都运行P2P软件,它们就可以进行平等、对等的通信
- 双方都可以下载对方存储在硬盘中的共享文档,如果权限允许的话
- 音频/视频应用推动了P2P对等通信方式的发展(BitTorrent)
- P2P方式从本质上看仍然是使用了C/S方式,但强调的是通信过程中的对等,这时每一个P2P进程既是客户同时也是服务器
2. 域名系统
2.1 概述
- 域名系统(DNS,Domain Name System)是互联网重要的基础设施之一,向所有需要域名解析的应用提供服务,主要负责将可读性好的域名映射成IP地址
- Internet采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。Internet的DNS是一个联机分布式数据库系统
- 名字到域名的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,相应的结点也称为名字服务器(Name Server)或域名服务器(Domain Name Server)
2.2 层次树状结构
顶级域名: com, cn, org, gov, edu
二级域名: edu
三级域名: fudan, pku
四级域名: www, cs, mail
2.3 域名解析过程
- 递归查询 “我不知道,直接帮你向上查” 较少使用
- 迭代查询 “我不知道,告诉你该找谁,你自己向上查” 通常使用
3. 电子邮件
3.1 邮件发送的常用协议
- 简单邮件传输协议SMTP(Simple Mail Transfer Protocol)——邮件服务器之间传递邮件使用的协议
- 最终交付(邮件访问)协议:从邮件服务器的邮箱中获取邮件:
- POP3:Post Office Protocol-Version 3,第三版邮局协议
- IMAP:Internet Message Access Protocol,Internet邮件访问协议
- Webmail(HTTP):基于Web的电子邮件
3.2 Webmail
Webmail——基于Web的电子邮件
- Webmail——基于Web的电子邮件
- 使用Web作为界面,用户代理就是普通的浏览器
- 用户及其远程邮箱之间的通信通过HTTP进行
4. WWW
4.1 WWW体系结构与协议
- WWW=World Wide Web=万维网
- HTTP服务器和客户端,以及它们之间执行的HTTP协议
服务器:
- Web页面(HTML文档):包含多种对象或链接
- Web对象(包括:静态对象和动态对象):可以是 HTML文档、 图像文件、视频文件、声音文件、脚本文件等
- 对象用URL(统一资源定位符)编址:协议类型://主机名:端口//路径和文件名
客户端:
- 发出请求、接收响应、解释HTML文档并显示
- 有些对象需要浏览器安装插件
统一资源定位器URL:
协议类型://主机名即服务器:端口/路径和文件名
WWW协议:
4.2 HTTP
4.2.1 概述
- 超文本传输协议HTTP( HyperText Transfer Protocol)在传输层通常使用TCP协议,缺省使用TCP的80端口
- HTTP为无状态协议,服务器端不保留之前请求的状态信息
- 无状态协议:效率低、但简单
- 有状态协议:维护状态相对复杂,需要维护历史信息,在客户端或服务器出现故障时,需要保持状态的一致性等
- HTTP标准
- HTTP/1.0: RFC 1945(1996年):
- 无状态,非持久连接
- HTTP/1.1: RFC 2616(1999年):
- 支持长连接和流水线机制
- 缓存策略优化、部分资源请求及断点续传
- HTTP/2: RFC 7540(2015年)、RFC 8740(2020年):
- 增加SSL/TLS(TLS 1.2)层,在TCP之上提供安全机制
- 目标:提高带宽利用率、降低延迟
- 增加二进制格式、TCP多路复用、头压缩、服务端推送等功能
- HTTP/1.0: RFC 1945(1996年):
4.2.2 Web安全与隐私: Cookie
HTTP 无状态协议,服务器 用cookies保持用户状态
HTTP在响应的首部行里使用一个关键字头set-cookie:选择的cookie号具有唯一性
后继的HTTP请求中使用服务器响应分配的cookie
Cookie文件保存在用户的主机中,内容是服务器返回的一些附加信息,由用户主机中的浏览器管理
Web服务器建立后端数据库,记录用户信息,cookie作为关键字
例如:
Set-Cookie: SID=31d4d96e407aad42; Path=/; Domain=example.com
Cookie: SID=31d4d96e407aad42
Cookies一般包含5个字段:
- 域指明Cookie来自何方,每个域为每个客户分配Cookie有数量限制
- 路径标明服务器的文件树中哪些部分可以使用该Cookie
- 内容采用“名字=值”的形式,是Cookie存放内容的地方,可以达到4K容量,内容只是字符串,不是可执行程序
- 安全指示浏览器只向使用安全传输连接的服务器返回Cookie
- 过期时间
Cookie技术是把双刃剑,能分析用户喜好,向用户进行个性化推荐
用Cookie在某网站标识用户信息,查找用户以前浏览网站记录
用Cookie记录用户购物清单
用Cookie可以保存4K内容,跟踪用户浏览网站的喜好
用Cookie跨站点跟踪用户点击广告
Cookie技术是把双刃剑,也能跟踪用户网络浏览痕迹,泄露用户隐私
Cookie跟踪用户以前浏览过哪些网站,跟踪用户频繁浏览哪类网站
Cookie收集用户信息,用户网络交互时关注的关键词
Cookie容易嵌入间谍程序,这是个误区,Cookie文件保存的只是文本串,没有可执行程序
- 用户可以设置浏览器限制使用Cookie
5. 流媒体
5.1 概述
流媒体概念
- 连续媒体(音视频)经压缩编码、数据打包后,经过网络发送给接收方
- 接收方对数据进行重组、解码和播放
流媒体特性
- 端到端时延约束
- 时序性约束:流媒体数据必须按照一定的顺序连续播放
- 具有一定程度的容错性:丢失部分数据包也可完成基本功能
流媒体面临的挑战
- 约束条件:网络特性(带宽有限、动态变化、延迟与抖动、丢失、异构性)
- 目标:流媒体服务质量要素(画质、启动延迟、平滑、交互性)
- 如何在“尽力服务”的网络传输条件下获得良好的视频质量?
5.2 DASH
DASH (Dynamic Adaptive Streaming over HTTP)
- 动态自适应流媒体传输协议DASH,由MPEG组织制定的标准
- 类似协议:苹果HTTP Live Streaming(HLS); Adobe的HTTP Dynamic Streaming(HDS);微软的Microsoft Smooth Streaming
DASH 基本思想
- 完整视频被拆分为固定时长 (2s-10s) 的视频片段(segment), 每段提供不同码率
- 视频片段与其对应的元文件(URL)一同存放于DASH服务器
- 客户端基于网络条件、缓冲大小等,对每个视频片段,自适应选择合适的视频码率来下
- DASH中普遍使用的自适应码率ABR(Adaptive bitrate)
6. CDN
- Content Delivery Network,or Content Distribution Network 内容分发网络
- 一种Web缓存系统,靠近网络边缘(用户)提供内容服务
- 目前提供更丰富的服务,包括静态内容、流媒体、用户上传视频等
- 主要优点
- 降低响应时延,避免网络拥塞
- 避免原始服务器过载及防止DDoS攻击
- 分布式架构,具有良好的可扩展性
- 对用户透明,无需用户感知
关键问题: 怎样将内容(如从百万的视频中选定的内容)分发给同时发起访问的数百万用户?
解决机理:
- DNS重定向实现CDN
- 将请求调度到较近或负载较轻的CDN服务器
- HTTP重定向请求内容,服务提供者返回清单CDN
- DNS辅助实现CDN
- 负载均衡DNS负责决策CDN服务器选择
- 负载均衡DNS需要收集CDN服务器的位置和负载情况
- 如果找不到被请求的对象,需要从原始服务器获取
7. P2P网络
P2P文件分发协议:BitTorrent
- 文件被划分为256Kb大小的块
- 具有种子(torrents)的节点发送或接收文件
- 跟踪器tracker
- 负责帮助节点获取其他节点的信息
- 用户从跟踪器获取节点列表
- 种子torrent
- 交换文件块的节点
- 用户同种子节点交换文件块
8. 远程登录Telnet
- Telnet协议引入网络虚拟终端NVT(Network Virtual Terminal),使用一种专门的键盘定义来屏蔽不同计算机系统对键盘输入的差异性,同时定义客户进程与远程服务器进程之间的交互过程
- NVT是Telnet协议定义的一组通用字符集,通过这种统一的数据表示方式,来保证不同硬件、软件与数据格式的终端与主机之间通信的兼容性
- 本地终端输入的字符首先由本地Telnet客户进程转换为NVT格式,通过网络将NVT格式的字符传输到远程主机,远程Telnet服务器进程再将NVT格式的字符转换为远程主机能够识别和处理的字符格式
- 使用Telnet协议在网络中传输的数据都是NVT格式,不同的用户终端与服务器进程均与本地终端格式无关
Telnet的工作过程 (windows自带 默认关闭) 基于TCP连接
- 本地Telnet客户进程与远程主机上的Telnet服务器进程建立TCP连接
- 将本地终端上输入的用户名和口令及以后输入的任何命令或字符以网络虚拟终端NVT格式传输给远程主机
- 将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果
- 本地终端对远程主机撤销连接,从而结束 Telnet远程登录过程
9. FTP
9.1 概述
文件传输协议FTP(File Transfer Protocol) 是Internet上使用最广泛的应用层协议之一
- FTP提供交互式的访问,允许用户指明文件的类型与格式,并允许文件具有存取权限
- FTP屏蔽了各计算机系统的细节,适用于在异构网络中任意计算机之间传送文件
- RFC 959早在1985年就已经成为Internet的正式标准
- FTP使用C/S方式实现
9.2 工作过程
- 服务器主进程打开TCP21端口,等待客户进程发出的连接请求
- 客户可以用分配的任意一个本地端口号与服务器进程的TCP21端口进行连接
- 客户请求到来时,服务器主进程启动从属进程来处理客户进程发来的请求
- 服务器从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程
- 服务器主进程返回,继续等待接收其他客户进程发来的连接请求,服务器主进程与从属进程并行工作
FTP的两个端口与两个连接
- 控制连接在整个会话期间一直保持,客户进程发出的文件传输请求通过控制连接发送给服务器控制进程(工作在TCP21端口),但控制连接不用来传输文件
- 服务器控制进程在接收到客户进程发送来的文件传输请求后就创建数据传输进程(工作在TCP20端口),数据连接
- 数据连接用来连接客户进程和服务器数据传输进程,实际完成文件的传输。服务器数据传输进程在文件传输完毕后关闭数据连接并结束运行