计算机网络基础知识
网络:节点 + 链路(有线、无线)
因特网服务提供商 ISP (中国电信 移动 联通)
三种交换方式:电路交换、分组交换、报文交换
计算机网络分层:MAC+IP+TCP + 应用数据
应用层:应用协议、应用进程
传输层:进程之间基于网络通信
网络层:路由分组、多个网络
数据链路层:路由分组多个网络
物理层:电信号、何种信号传输
Http 请求数据包封装过程
应用层:HTTP
运输层:HTTP+TCP
网络层:HTTP+TCP+IP
数据链路层:HTTP+TCP+IP+MAC
物理层:比特流
物理层#
传输媒体#
物理层传输的数据单位:比特
传输方式#
并行传输、串行传输
同步传输:数据块以稳定的比特流的形式传输,字节之间没有间隔
异步传输:以字节为独立的传输单位
通信方式:单工(广播)、半双工(对讲机)、全双工(电话)
编码与调制#
码元:基本波形
基带信号:数字基带信号、模拟基带信号
常用编码:不归零编码(存在同步问题)、归零编码(效率低)、曼彻斯特编码、差分曼彻斯特编码
混合调制(多元制)调幅、调频、调相(基本调制、二元制)
信道的极限容量#
信号失真
奈氏准则、香农公式
物理层协议的主要任务:机械特性、电气特性、功能特性、过程特性
数据传输速率 = 码元传输速率 x 每个码元可携带的比特数量
数据链路层#
路由器包括层:物理层(电信号)链路层(帧)网络层(ip)
数据链路层主要提供功能:封装成帧、透明传输、差错检测(检错码、检错算法)
封装成帧#
帧头 + 上层数据单元 + 帧尾 帧定界
透明传输:表示无论发送什么样的数据,这些数据都能够按照原样没有差错地通过数据链路层。
转义字符(帧定界):零比特填充法
差错检测#
误码率:错误接收的比特数与发送的总比特数之比
检测方式有奇偶校验、循环冗余校验;确保数据是正确的
奇偶校验:奇偶校验只可以简单判断数据的正确性,从原理上可看出当一位出错,可以准确判断,如同时两个 1 变成两个 0 就校验不出来了
循环冗余校验
可靠传输#
传输差错:比特差错、分组丢失、分组失序、分组重复
可靠传输实现机制#
实现机制:停止 - 等待协议、回退 N 帧协议、选择重传协议
停止 - 等待协议:发送、等待、确认(超时重传);实现简单,但信道利用率低
回退 N 帧协议:发送窗口、滑动窗口协议
选择重传协议:接收窗口尺寸
点对点协议 PPP:一套网络控制协议 NCPS、封装成帧、链路控制协议 LCP
透明传输:字节填充法(填充转义字符)、比特填充法(填充比特,连续 5 个 1,填充 1 个 0)
字节填充法(填充转义字符)
比特填充法(填充比特,连续 5 个 1,填充 1 个 0)
实现差错检验:循环冗余检验
媒体接入控制(信号碰撞):静态划分信道、动态接入控制
信道复用:频分、时分、波分、码分
MAC 地址#
主机唯一标识 MAC:mac media access controll
出厂时设置硬件地址:48 位 6 个字节
IP 地址#
分类 IP 地址、无分类 IP 地址
网络号、主机号
网络号、子网号、主机号
ARP 协议#
ARP 协议:地址解析协议
ARP 高速缓存表:维持 IP 与 MAC 的关系映射
集线器与交换机:集线器属于第一层物理层设备,而交换机属于第二层数据链路层设备。这意味着集线器只是对数据的传输起到同步、放大和整形的作用,而交换机不但可以对数据的传输做到同步、放大和整形,而且可以过滤短帧、碎片等,从而保证数据传输的完整性和正确性。
交换机(帧交换表学习):以太网交换机自学习和转发帧、自行维护、帧交换表(有效期)
以太网交换机生成树协议 STP:解决冗余链路、网络环路、广播风暴问题
虚拟局域网(VLAN) 实现机制
交换机实现(打标签)设置端口 VLAN
Acess 连接计算机 单 VLAN
Trunk 交换机、路由器、多 VLAN
网络层#
网络互连、数据包传输、TCP 协议提供可靠传输、UDP 协议提供不可靠传输、网络层寻址问题、路由选择问题
两种服务#
面向连接的虚电路服务:虚电路 VC
无连接的数据包服务:可靠通信由主机保证
IPV4#
32 比特标识符、转换为十进制表示
划分子网 ipv4#
子网掩码、用于标记子网号
网络号 + 子网号 + 主机号
默认子网掩码、未借用主机号、未划分子网
A 类地址:255.0.0.0
B 类地址:255.255.0.0
C 类地址:255.255.255.0
ip 地址的应用规划:定长的子网掩码 FLSM、变长的子网掩码 VLSM
IP 数据报发送和转发#
主机发送 IP 数据报、路由器转发 IP 数据包
同一网络:直接交付,不同网络:间接交付
同一网络:IP AND 子网掩码,计算值一致则为同一网络
默认网关(路由器)
静态路由配置:路由环路问题
路由选择协议#
静态路由需要网络管理员手动进行配置,每条路由都需要手动指定。动态路由则是由路由器通过网络协议自动学习和维护路由信息。
静态路由、适合小规模、动态路由、使用大规模
运输层#
TCP 与 UDP 协议
运输层端口号划分:端口号为 2 的 16 次方 65535 个、01023 熟知端口号、102449151 登记端口号、49152~65535 为短暂端口号
复用与分用:发送方复用、接受收分用
TCP 与 UDP 对比#
UDP :面向应用报文、UDP 不可靠传输(电话应用)、支持单播、多播、广播、首部小
TCP :面向字节流、全双工通信、TCP 可靠传输(文件传输)、单播、首部大
TCP 流量控制#
滑动窗口机制、确认应答机制:seq 序号 ack 响应
应用层#
BS 方式:浏览器 / 服务器模式(Browser/Server)
CS 方式:客户端 / 服务器模式(Client/Server)
P2P 方式:文件共享、即时通信
动态主机配置 DHCP:ip 地址、子网掩码、默认网关、dns 服务器
DHCP 服务器:端口 67
文件传送协议 FTP:Server:端口 21、Client:临时端口号即可
域名系统 DNS:提供域名与 ip 映射、层次树状结构的域名结构
http 基本概念#
http:超文本传输协议
五类 http 状态码
http 常见字段
由于 http 是无状态,所以需要借助 cookie(存储在客户端)来维持会话状态
由于 http 是明码传输,存在不安全问题,于是就引入了加密传输的 https 协议
http 端口 80、https 端口 443(需要证书)
http1.1 特性
长连接 持久连接 仅需一次 3 次握手
管道网络传输
同时发送多个请求
响应还是顺序的
队头阻塞
一个数据包在网络中的心路历程#
http 请求
dns 服务:获取域名对应 ip
协议栈:tcp/ip
送别者:交换机
出境大门:路由器
路由器基于 ip 设计:三层网络设备
交换机基于以太网:二层网络设备
网络包传输过程中,源 ip 与目的 ip 始终不变,变化的是 mac 地址
提供可靠传输 TCP(不提供可靠传输协议 UDP)
tcp 报文格式、失败重传(确认送达)、窗口滑动(流量控制)
tcp 三次握手的目的:确保双方都具有发送和接收的能力
查看 tcp 连接状态:netstat -napt
网络包封装:http+tpc+ip+mac
远程定位 ip:源地址 ip、目的地址 ip
两点传输 mac:mac 包头 + ip 头部 + tcp 头部 + http 报文
出口网卡:网络、网卡驱动程序、数字信号转换为电信号
ping 的工作原理#
ip 协议助手、icmp 协议:互联网控制报文协议
icmp 类型:查询报文类型、差错报文类型
ping 查询报文类型使用:mac 头 + ip 头 + icmp 请求报文
tracerate 差错报文类型使用:构造不可达信息,返回网络节点信息
ip 基础知识#
IP 地址表示:32 比特标识符
数据链路层(mac 层)网络层(ip 头)
ip 地址的分类:ABCDE,根据 网络号 + 主机号拆分
广播地址:主机号全为 1
本地广播:在本网络内广播
直接广播:在不同网络之间的广播
无分类地址 CIDR:网络号 + 主机号
示例:10.100.122.2/24,表示 24 位作为网络号、8 位作为主机号
可用地址数为 2 的 8 次方减 2:256-2,其中的 2 个,指的是主机号全为 1(表示广播地址),或全为 0 的地址(表示指向本网)。
子网掩码 255.255.255.0(子网掩码:掩盖掉主机号,用于划分子网)
网络号 10.100.122.0(网络号 = 子网掩码 AND ip 地址)
第一个可用地址:10.100.122.1
最后一个可用地址:10.100.122.254
广播地址:10.100.122.255
未作子网划分 ip 地址:网络地址 + 主机地址
按子网划分 ip 地址:网络地址 +(子网网络 + 子网主机)
默认子网掩码
A 类地址的默认子网掩码是 255.0.0.0。
B 类地址的默认子网掩码是 255.255.0.0。
C 类地址的默认子网掩码是 255.255.255.0。
私有 ip 地址 (固定划分)
A 10.0.0.0~10.255.255.255
B 172.16.0.0~172.31.255.255
C 192.168.0.0~192.168.255.255
公有 ip 地址:ICANN 组织管理
ip 地址与路由控制
环回地址不会流入网络:127.0.0.1
ip 分片与重组:MTU(最大传出单元) 1500 字节
IP 协议相关技术
DNS 域名解析
ARP 与 RARP 协议
DHCP 动态获取 ip 地址
NAT 网络地址转换
ICMP 互联网控制报文协议
网络协议分层
应用层:http ftp
传输层:tcp udp
网络层:ip
数据链路层:mac 地址
物理层:数据包转化为电信号
常用的网络命令
ping:用来检测网络通不通
ifconfig:用于显示或配置网络设备
traceroute:命令利用 ICMP 协议定位您的计算机和目标计算机之间的所有路由器
netstat:用于显示各种网络相关信息
telnet:远程登录服务的标准协议和主要方式
SSH 网络协议:SSH 是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用 SSH 协议登录另一台远程计算机
FTP 文件传输协议:是用于在网络上进行文件传输的一套标准协议
原文链接:深入浅出计算机网络
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: