前言:一些实例应用总避不开网络通信的内容,好奇数据传输的运作方式和过程。学习笔记,挖坑内容,随时查看复习用。
参考:《计算机网络》 + 视频课程
基本概念
- ip地址:唯一标志,id
- 子网掩码:决定ip中哪部分是网络段,哪部分是主机段
- 网关: 告诉发送到哪的服务器,局域网的端口,负责对外通信
- DNS: 域名解析为 ip 地址
- mac地址:物理地址,网卡出厂即决定
- 路由器:局域网跟外网通信节点
- 交换机:工作在链路曾的局域网节点
- 集线器:工作在物理层的局域通信链接节点
- 性能指标:
- 速率:主机在数字信道上传送数据位数的速率,单位是b/s, kb/s, Mb/s, Gb/s
- 带宽:数字信道所能传送的最高数据率
- 吞吐量:单位时间内通过某个网络的数据量
- 时延(延迟):发送时延,传播时延,处理时延,排队时延
ip地址决定了资源的初始位置和目标位置
mac地址是传输过程中所需要经过的路径位置
OSI参考模型
- 应用层:所有能够产生流量的程序
- 表示层:在传输之前是否进行加密或者压缩处理
- 会话层:netstat -n
- 传输层:可靠传输 流量控制 不可靠传输
- 网络层:负责选择最佳路径 规划ip地址
- 数据链路层:帧的开始和结束 透明传输 差错校验
- 物理层:接口标准 电器标准 如何在物理链路上更快传输
物理层
-
基本内容
物理层解决如何在连接各种计算机的传输媒体上传输数据比特流。主要任务是确定与传输媒体的接口的一些特性。
-
数据通信
-
数据:运送消息的实体
-
信号:数据的电气或电磁的表现(模拟信号:取值是连续的;数字信号:取值是离散的)
-
码元:表示二进制数信息的基本波形
-
信道:单向通信(单工通信),双向交替通信(半双工通信,传呼机),双向同时通信(全双工通信,电话)
-
基带信号:来自信源的信号,代表要传输的数据
-
带通信号:将基带信号经过调制后,确保能够远距离传输
-
调制方法:调幅,调频,调相
-
耐氏准则:限制码元传输速率。没有信号干扰,码元的传输速率有上限
-
香农公式:限制信息传输速率。有信号干扰下,极限无差错信息的传输速率 C = W l o g 2 ( 1 + S / N ) C = W log_2(1 + S/N) C=Wlog2(1+S/N)
-
-
传输硬件知识
- 挖坑
数据链路层
-
基本内容
-
点到点信道:一对一
-
广播信道:一对多,使用专用的共享信道协议
-
链路:一条点到点的物理线路段
-
数据链路:除链路外,还包含这通信协议,控制数据传输,通常使用适配器实现协议
-
帧:数据链路层传输的数据
-
解决三个基本问题:
-
封装成帧----->【帧首部】【数据】【帧尾部】
-
透明传输------> 一些字符的添加和忽略
-
差错检测------> 循环冗余检验CRC (Cyclic Redundancy Check)
-
-
-
点到点信道
- ppp协议(Point-to-Point Protocol)帧
- ppp协议(Point-to-Point Protocol)帧
-
广播信道
-
局域网
- 具有广播功能,为一个区域所拥有
-
以太网
-
使用CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议:
- 多点接入: 许多计算机以多点接入方式接入到一根总线上
- 载波监听:使用电子技术检测总线上有没有其他计算机发送的数据信号,如果有,则暂时不发送数据,以免发生碰撞
- 不能进行双工通信,而只能使用双向交替通信(半双工通信)
- 碰撞检测、争用期、退避算法
-
标准:DIX Ethemet V2 和 IEEE的 802.3 标准
-
集线器 (工作在物理层;广播机制,数据传给局域网所有机器,拒收和接收)
-
MAC (Media Access Control) 地址(硬件地址,物理地址)
-
由IEEE注册机构RA同一管理,网络设备位置唯一标识,16进制表示
-
帧格式
-
-
-
扩展以太网
-
网桥(工作在链路层;能够提取到MAC地址,有目的的转发,而不用采用广播机制<区别于集线器>;交换机的前身): 先检查目标的MAC地址,查表,然后准确转发到指定接口
-
交换机(工作在数据链路层;跟网桥差不多,接口更多)
-
网络层
-
基本内容
- 负责在不同网络间尽力转发数据包,不关心具体数据包内容,不关心是否传输成功等
- ART协议—> IP协议 —> ICMP&IGMP协议
-
ARP (Address Resolution Protocol) 地址解析协议
-
通过广播,获取目标ip的MAC地址
-
ART欺骗,收到广播后,通过告诉错误的MAC地址,实现转接:网络执法官
-
命令:$ arp
$ arp -a
$ arp -s
-
-
IP (Internet Protocol) 网际互连协议
- 负责把数据包从一个网段转移到另一个网段
-
ICMP (Internet Control Message Protocol) Internet控制报文协议
-
检测网络连接是否成功,诊断
-
常用命令:$ ping (Packet internet Grope)
$ ping <ip> -t
$ ping -l num <ip>
time : 延迟时间
ttl : 生存周期,防止数据在网路上循环。可以大致判断对方ip地址机器系统(linux: 64 window: 128 unix: 255)
$ pathping <windows>
-
-
IGMP(Internet Group Management Protocol) Internet组管理协议
- 组播/多播<区分于 点到点、广播 概念>
- 可以借助频道概念来理解
-
IP数据包
-
IP协议
- RIP (Routing Infomation Protocol) 路由信息协议:应用于应用层
- OSFP (Open Shortest Path First) 开放式最短路径优先
-
静态路由和动态路由
- 静态路由一般用于比较简单的网络,路由表由管理员给定。优点是网络安全保密性高。不占用带宽。
- 动态路由一般用于复杂的网络环境,路由表能够根据链路和节点变化自动调整。对路由表分析可以揭示出网络拓扑结构和网络地址信息。
传输层
-
基本内容
-
传输层:应用程序<---->应用程序;网络层:地址<-------->地址
-
TCP(Transmission Control Protocol)协议:文件分段,建立会话,可靠传输,流量控制
-
UDP(User Datagram Protocol)用户数据报协议:整体传输,还常用于广播 多播
-
各协议用协议号进行标志,端口用一个16位端口号进行标志
-
传输层协议与应用层协议
应用层(安装服务) 传输层 端口(侦听) http TCP 80 https TCP 443 ftp TCP 21 pop3 TCP 110 imap TCP 143 smtp TCP 25 dns UDP 53 sql TCP 1433 telnet TCP 23 rdp TCP 3389 共享资源 TCP 445 … … … -
服务应用协议
- 服务对应着传输层协议以及端口
- 服务使用TCP和UDP端口侦听客户端请求
- 客户端使用ip定位服务器,使用目标端口定位服务
-
安装服务
-
端口
-
端口范围
0-1023:保留端口,即系统端口,只有系统特许才能使用
1024-5000:临时端口
5001-65535:服务器端口,用来给用户自定义端口
-
可以更改服务的默认端口(到具体服务应用上修改),端口号只具有本地意义,不能够重复
-
关闭端口:只需要关闭指定服务便可
-
防火墙可以对端口进行限制,可以在服务网卡只开放指定端口
-
-
一些命令
$ netstat -anp --------> 查看端口信息
$ netstat -n --------> 查看建立的会话
$ telnet <ip> 端口号 -------> 查看ip的某个端口是否打开
-
-
UDP协议
- 协议格式:【UDP首部】【UDP用户数据报的数据部分】
- 特点:无连接,无拥塞控制,面向报文,支持一对一、一对多、多对一,首部只有8字节
-
TCP协议
-
基本内容
-
TCP报文段
- 序号:标志分段数据的顺序的号码,便于后面的接收方的拼凑
- 确认:接受到信息,让发送端发送下一个数据
- 数据偏移:记录tcp首部的位置
- URG:高级别数据,优先发送,可用于停止传输
- ACK:标识确认号是否有效
- PSH:高级别数据,优先接受
- RST:出现严重错误,异常中断
- SYN:标识是否为建立会话请求的数据
- FIN:释放连接
- 窗口:接受和发送数据缓存的大小
-
可靠交付(解决错发、少发等),流量控制(不能发送太快,不然接收处理不来),避免网络堵塞(审时度势)
-
面向连接的传输层协议(三次握手),全双工通信
-
每条TCP连接只能有两个端点,即点对点(套接字socket<ip: port>链接)
TCP连接: [socket1]—[socket2] == [(ip1: port1)]—[(ip2: port2)]
-
面向字节流(TCP缓存)
-
-
关于可靠传输(停止等待,自动重传ARQ(Automatic Repeat reQuest))
- 无差错情况:发送方等待接收方确认
- 超时重传:(文件丢失、确认迟到)指定时间发送方未接受到确认信息,则重传(发送方自动重传);TCP每发送一个报文段,就会对这个报文段设置一次计时器。
- 提高传输效率(发送方一直发送,不必每次发送都等待确认信息)
- 流水线传输
- 滑动窗口技术
- 发送端发送窗口中数据可持续发出,不必等待确认信息,直到发送窗口中无可发送信息
- 当发送段收到接收端确认(选择性确认 )后,便删除掉已经确认的数据,同时滑动窗口向前移动
- 同理,接收端接收到请求到的数据后,将接收端窗口中数据从换从读入,删去缓存窗口中数据,同时向前移动
- 累计确认
-
关于流量控制(对因发送端和接收端处理数据速度不同产生的问题进行协商解决)
- 通过改变窗口大小的值来实现流量控制,当接收端发送给发送端窗口大小为0时,发送传输暂时停止。
-
关于网络堵塞(拥塞避免)
- 慢开始算法
- 快重传
- 慢恢复
-
关于传输连接(连接建立,数据传输,连接释放)
-
连接建立(三次握手: 注意数据传输内容和设备状态;第三次握手的必要性:防止服务器资源浪费)
-
数据传输
-
连接释放 (四次挥手)
-
-
应用层
-
基本内容
- 每个应用层协议对应于一个个服务(使用某个应用,就安装某个服务)
-
DNS (Domain Name System) 域名系统(服务)
-
负责解析域名,将域名解析为IP地址(使用UDP传输)
-
域名:
示例域名: zju.edu.cn
顶级域名: cn / com gov net org
二级域名: edu
三级域名: zju
网址对应不同服务器: mail.zju.edu.cn ; www.zju.edu.cn;等
-
域名解析:$ ping mail.zju.edu.cn
-
互联网域名解析服务器(分布式)
-
DNS服务器手动安装和配置
- 解析内网自己的域名
- 节省到internet域名解析流量
-
-
DHCP (Dynamic Host Configuration Protocol) 动态主机配置
- 采用客户端/服务器模型
- 常被用于大型局域网络环境中
- 方便集中管理,分配IP地址。使网络环境中的主机动态获取IP地址、Gateway地址,DNS服务器地址等信息。
- 使用广播机制
- 可以跨网段ip分配
-
FTP (File Transfer Protocol) 文件传输协议
-
建立两条连接:port 20,用于发送ftp命令;port 21(主动模式下),用于数据传输
-
连接建立类型:
- 主动模式:ftp客户端打开某一端口,告诉ftp服务器,让其连接。服务器端口固定默认 20 和 21 端口。
- 被动模式:ftp客户端主动联系服务器,要求传输数据。服务器端口不固定,即 20 和 xx 端口。
- 当FTP服务器端有防火墙,需要打开20,21端口,且使用主动模式连接。
-
传输模式:
- 文本模式:ASCII
- 二进制模式:Binary
-
-
Telnet 远程终端协议
- 远程传输命令:可用于远程管理、配置(需要对应设备的命令格式)
- 测试远程某个端口是否打开:替代端口扫描工具 telnet <ip> port
-
RDP (Remote Desktop Protocol) 远程桌面
- 类似于telnet,但包含UI界面
- 可以设置最大连接数,设置权限
-
WWW (World Wide Web)万维网
-
演变趋势:网址汇总网站(如 www.hao123.com)------>搜索引擎(如 www.baidu.com)
-
采用客户/服务器方式,万维网提供分布式服务
-
URL(Uniform Resource Locator)统一资源定位符:<协议>://<主机>:端口/<路径>
-
HTML (Hyper Text Markup Lauguage) 超文本标记语言
-
HTTP使用TCP连接
-
使用Cookie来跟踪用户
-
web代理服务器
- 节省内网访问 Internet 的带宽
- 可以绕过防火墙,翻墙
- 可以避免被跟踪
-
安装配置Web服务器
-
-
SMTP、POP3、IMAP 邮件
-
过程
-
发送邮件协议:SMTP(Simple Mail Transfer Protocol) = TCP + 25
-
读取邮件协议:POP3(Post Office Protocol) = TCP + 110 ; IMAP(Internet Mail Access Protocol) = TCP + 143
-
安装配置Mail服务器
-
网络安全
-
基本概念
- 四种威胁:截获、中断、篡改、伪造
- 被动攻击:截获信息;主动攻击:更改和拒绝用户使用资源
- 病毒、蠕虫、木马、逻辑炸弹
-
加密技术
- 数据加密标准DES
- 加密算法,分组加密
- 加密秘钥
- 对称加密
- 解密秘钥和解密秘钥相同
- 秘钥不适合在网上传播
- 不适合大规模使用,维护比较麻烦
- 效率高
- 非对称加密:
- 加密秘钥和解密秘钥不同
- 密钥对:公钥和私钥(公钥加密私钥解密,私钥加密公钥解密)
- 非对称秘钥加密对称加密的秘钥,对称秘钥加密文件
- 数据加密标准DES
-
数字签名
-
非对称秘钥的应用
-
防止抵赖,鉴别真伪,检查签名后的内容是否被更改
-
实现(文件–>算法—>加密)
-
-
数字证书:证书颁发机构CA (发放公钥)
- 将公钥与其对应的实体进行绑定
- 确认企业和个人身份
- 企业和个人信任颁发机构
-
安全协议
-
安全套接字 SSL (Security Socket Layer)
-
在涉及到登录、邮件等时,浏览器跳转到 https
-
端口改变
https: tcp + 443
pop3s: tcp+995
smtps: tcp+465
imaps: tcp+993
-
可用于服务器鉴别,加密SSL会话,SSL客户鉴别
-
-
网络层安全IPSec
-
-
链路加密和端到端加密
-
防火墙(firewall)