计算机网络抱佛脚自用
https://www.runoob.com/w3cnote/summary-of-network.html
计算机网络
edge and core
- 网络边缘:主机上的应用程序(Client-Server/Peer-to-peer)
- 网络核心:路由器
交换方法
- circuit switching; message switching(不考虑); packet-switching
电路交换
- dedicated resource 资源专用
- 最大特点: 独占线路. 这样可以保证性能, 但别人想来就占线了, 因此要记得断开连接. 一定程度不公平.
- 为了增加效率,使用TDM,FDM 等partition
- 需要首先建立 circuit: 因此是一种面向连接的服务
- 不需要header
- 面向连接: 只适合点对点通信, 不适合多点通信
- Establish, Transfer, Teardown.
分组交换
- 目前用的最多
- 数据流 -> 分成数据端 + header + tail -> package
- 不partition,一个包用全部带宽,本质上是一种按需分配(statistical Multiplexing)独占带宽的TDM
- 核心技术: store and forward 存储转发技术
- 没有占线问题,但buffer一旦用完,会出现 丢包/溢出/重新传输等问题
数据报分组交换
虚电路分组交换
- routers maintain per-call state
物理层
- 编码,解码,调制,解调
- 各种编码方式(归零,不归零,曼彻斯特)
- 各种调制方式(调频,调幅,调相)
- 借道复用(FDM,TDM,WDM,CDM)
数据链路层
- 作用:传输可靠数据帧;访问共享信道
- 信道类型:点到点;广播信道
点到点信道
组帧+差错控制
- 为了可靠,将比特流拆分成离散的帧,为每个帧计算一个称为校验和的短令牌
- 主流拆分方法:字节填充的标志字节法;比特填充的标志比特法;物理层违禁编码法
- 差错控制:纠错码(海明码);检错码(奇偶校验,校验和,循环冗余校验CRC);超时计时器
停等协议
- 收到接收方确认帧后,才发下一个数据帧
- 超时重发
- 使用序号避免重复接收一个帧(0,1两个即可)
- 双工方法:
- 两条链路单工运行
- 只用一条链路,通过kind区分数据帧和确认帧
- 捎带确认 piggybacking
滑动窗口协议
- 在任何时刻,发送方总是维持着一组序号,接收方也维持着一组序号,大小不定。
- 管道化
- 最大窗口为 2BD+1
- 窗口的最大尺寸不应超过序号空间的一半
- 为了处理中途出错:
- go-back-n(接收方窗口=1);
- SR 选择重传(接收方窗口>1)
- 可以引入NAK在超时前就触发重传
- 使用累计确认减少需要发送的ack数目
效率比较
- 停止等待协议(stop-and-wait)
就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。 - 回退n帧的ARQ
也叫做GBN,发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么从那个发生错误的帧开始及其之后所有的帧全部再重新发送。复杂度低,但是不必要的帧会再重发,所以大幅度范围内使用的话效率是不高的 - 选择性重传ARQ
发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么发信侧将只重新发送那个发生错误的帧。
特点:相对于GDN 复杂度高,但是不需要发送没必要的帧,所以效率高。
所以信道利用率最高的是 选择性重传ARQ > 回退n帧的GBN > 停止等待协议(stop-and-wait)
MAC子层
介质访问控制策略
- 局域网中目前广泛采用两种介质访问控制策略,第一种是争用型介质访问控制,又称随机型介质访问控制,如CSMA/CD;第二种是确定型介质访问控制,又称有序的介质访问控制,如Token(令牌)方式;
- 在无线局域网中,介质访问控制策略工作方式为DCF(分布控制)和PCF(中心控制)
经典以太网MAC子层协议
MAC地址,or 硬件地址/物理地址,长度是48比特(6字节)(每个字节之间的分隔符并没有严格要求 可以说冒号 or 减号),由16进制的数字组成。最小帧长限制的原因
二进制指数后退的 CSMA/CD
交换式以太网
- 改进:单根线缆 => 集线器 hub
- 然而逻辑上仍然是同一个冲突域。改进:交换机 Switch
- 传统以太网(10Mbps),快速以太网(100Mbps),千兆以太网(1000Mbps),万兆以太网(10000Mbps)帧结构完全相同,且最小帧长均为64B,最大帧长均为1518B
- 拓扑结构
- 普通以太网:总线型;
- 快速以太网:星型。(快速是指100Mbps及其以上)
集线器
不能识别MAC地址。
集线器不管有多少个端口,所有端口都共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待;只能工作在半双工模式下。交换机
冲突域是第一层物理层的概念,用第二层及其以上的设备才可以分离冲突域;
广播域是第二层数据链路层的概念,用第三层及其以上的设备才可以分离广播域。
交换机属于第二层的设备,所以 可以分离冲突域,但不能分离广播域
无划分vlan下,交换机所有接口属于同一个广播域;划分vlan下,每个vlan属于一个广播域。
交换机每个端口都有一条独占的带宽,当两个端口工作时并不影响其他端口的工作,交换机可以工作在半双工模式下也可以工作在全双工模式下。
网络层
- 功能:路由+转发,实现网络主机之间点到点互联
- 服务:虚电路(ATM, X.25);数据报(IP)
- IP: 提供的是一种无连接、不可靠但尽力而为的数据报传输服务,将数据报从原主机传送到目的主机。
- 其他协议:ICMP(通常被认为是IP层的一部分,Internet控制报文协议);ARP;RARP
IP地址
- IP地址:32位,全球唯一,具有层次性
- IP地址=网络号+主机号
- 无类域间IP地址(CIDR地址):主要用于防止路由表爆炸,应用路由聚合思想
- 多接口主机:同时连接到多个网络,有多个IP地址的主机
- 由中继器、网桥、交换机连接的网络属于同一LAN,网络号相同
分类法IP地址
有效性:
A类: 1.0 -- 127
B类: 128.0 --- 191
C类: 192.0 --- 223
私有:
A类: 10.~
B类: 172.16 --- 172.31
C类: 192.168.~
特殊IP地址
- 回环地址: 本地回环地址指的是 以127开头的地址(127.0.0.1 ~ 127.255.255.254), 通常用127.0.0.1来表示
- 0.0.0.0
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。 - 一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。
- 一个网络内至少提供地址个数:主机数+3 (全0+全1+网关地址)
NAT 网络地址转换
路由表的设置
route add--使用本命令,可以将新路由项目添加给路由表。 例如,如果要设定一个到目的网络209.98.32.33的路由,其间要经过5个路由器网段, 首先要经过本地网络上的一个路由器,其IP为202.96.123.5,子网掩码为255.255.255.224, 那么你应该输入以下命令: route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5 route add '目标ip' mask '下一跳掩码' '下一跳ip' metric '距离'
路由表的建立--建立动态路由的路由算法
距离矢量算法DV
DV算法也被叫做Bellman-FOrd算法,用于RIP协议。
每个路由器维护一张表,列出已知到每个路由器最佳距离。邻居之间互相交换信息更新这张表。
DV算法的最大问题是“好消息传的快,坏消息传的慢”。这引发了无穷计数问题,几乎无法解决,导致被链路状态路由算法替代(link state routing)链路状态路由
- 分发链路状态包采用的是泛洪法的思想,但是我们需要控制规模
- 控制规模的方法是为每个数据包添加一个序号。只处理新的数据包。忽视重复和过时的数据包。
- 为了避免序号出现意外错误,加入“年龄”字段使得保存的信息定期超时被丢弃。
- OSPF开放最短路径优先(Open Shortest Path First),是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相对,OSPF是链路状态路由协议,而RIP是距离向量路由协议。
传输层
- 为应用程序实现端到端的通信(传输层是进程到进程,俗称端到端。网络层是主机到主机,俗称点到点。)
- 服务:面向连接(TCP),无连接(UDP)
- 在TCP协议中,有1024个端口是保留给常用服务器的应用端口,又因为端口是从0开始算的所以是0-1023,端口号最大为2^16-1=65535
UDP
- 基本上就是IP上披了个皮。没有拥塞控制、重传等功能。一个应用是域名系统DNS(幂等,重复安全)。
TCP
- Socket = ip + port
三次握手
四次挥手
整体流程
窗口管理
拥塞控制
skip
应用层
有四个使用的是TCP,其余的都是UDP,大家一般记住这四个是实用的TCP
这四个是:文件传送FTP,电子邮件SMTP(simple mail transport protocol),远程终端接入Telnet,万维网http。
DNS
使用UDP。有递归,迭代两种方法。
FTP
控制信息使用21端口,数据连接对应20端口。两个并行TCP连接.
控制连接存在于整个FTP会话过程中,数据连接在每次文件传输时才建立.
当客户端向服务器发出连接请求时,客户端与服务器的21端口建立控制连接,并告诉服务器自己的另一个端口号码,用于建立数据连接。接着服务器就用自己的20端口与客户端所提供的端口号进行数据连接,由于FTP使用了两个不同的端口号,所以数据连接和控制连接不会混乱(注意20和21都是服务器端的端口)
SMTP与POP3
SMTP用于发送邮件,POP3用于读取邮件。
用户向邮件服务器以及邮件服务器之间发送邮件时采用SMTP协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
用户--ftp--> 邮件服务器 -----smtp ---> 邮件服务器 ---ftp---> 用户
HTTP
采用client-server模式,TCP进行传输。是web的应用层协议。world wide web使用URL来定位整个Internet上的WWW文档。
错误码
100-199 指定client端相应的某些动作。
200-299 表示请求成功
300-399 用于已经移动的文件并且包含在定位头信息中
400-499 指定client端错误
500-599 server端错误
HTTP2.0
HTTP 2.0 所有通信都在一个 TCP 连接上完成。(长连接)
HTTP 2.0 浏览器可以在发现资源时立即分派请求,指定每个流的优先级,让服务器决定最优的响应次序。
HTTP 2.0 支持服务器到客户端的主动推送机制。
HTTP/2.0 通过支持首部字段压缩(头部减小)和在同一连接上发送多个并发消息,让应用更有效地利用网络资源,减少感知的延迟时间
URL
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。
URL的一般语法格式为:
(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment