网络知识 (抄书)

网络知识 (抄书)

Table of Contents

  • 以太网
  • 载波监听多点接入/碰撞检测
  • 令牌环

数据交换的方式

  1. 电路交换: 整个报文的比特连续地从源点直达重点, 好像在一个管道中传送
  2. 报文交换: 整个报文先传到相邻结点, 全部存储下来后查找转发表, 转发到下一个结点
  3. 分组交换: 单个分组 (报文的一部分) 传送到相邻结点, 存储下来后查找转发表, 发送到下一个结点

采用分组交换的优点:
宏观可靠: 传输过程出现问题, 可以走别的路径 (路由器)
如果是电路交换, 中间其中一个 单点 出现故障, 就会造成整体故障
还可以实现差错处理

采用分组交换的缺点:
微观不可靠: 其中一个分组传送失败, 那么就会出现问题. 另外还有可能发生 报文丢失, 乱序, 重复等情况



速率: 单位 b/s, 1M b/s = 10^3K b/s, 不是以 2 进制的方式存储

吞吐量 throughput: 单位时间内通过某个网络的数据量

时延 delay, latency: 发送到接收处理完后所需要的时间

发送时延                        发送数据的第一个比特算起, 到接收最后一个比特发送完毕所需要的时间
传播时延 propagation latency    数据以电磁波在信道中传播一定的距离所需要的时间
处理时延                        接收方收到分组并处理完的时间
排队时延                        在进入路由器后要先在输入队列中等待处理, 所需要的时间

TTL time to live: 存活时间
RTT round-trip time: 往返时间

以太网

以太网对发送的数据帧不进行编号, 也不要求对方发回确认

当目的站收到有差错的数据帧时就丢弃此帧, 其他什么也不做. 差错的纠正由高层来决定
例如, 如果是 TCP 协议, 就会发现丢失了一些数据并重传, 以太网并不知道这是重传帧, 而是当做新的数据帧来发送

载波监听多点接入/碰撞检测

Carrier Sense Multiple Access with Collision Detection  CSMA/CD

总线上只要有一台计算机在发送数据, 总线的传输资源就会被占用, 因此在同一时间只能允许一台计算机发送数据, 否则
各计算机之间就会互相干扰, 使得所发送的数据被破坏.

要传输数据的站点首先对媒体上有无载波进行监听, 以确定是否有别的站点在传输数据. 假如媒体空闲, 该站点便可传输数据
否则, 该站点将避让一段时间后再做尝试. 这就需要有一种退避算法来决定避让的时间

常用的退避算法有非坚持, 1 坚持, P 坚持三种



非坚持算法

  1. 如媒本是空闲的, 则可以立即发送
  2. 假如媒体是忙的, 则等待一个由概率分布决定的随机重发延迟后, 再重复前一步骤

采用随机的重发延迟时间可以减少冲突发生的可能性
非坚持算法的缺点是:
即使有几个着眼点为都有数据要发送, 但由于大家都在延迟等待过程中, 致使媒体仍可能处于空闲状态, 使用率降低



1-坚持算法

  1. 如媒体空闲的, 则可以立即发送
  2. 假如媒体是忙的, 则继续监听, 直至检测到媒体是空闲, 立即发送
  3. 假如有冲突 (在一段时间内未收到肯定的回复), 则等待一随机量的时间, 重复步骤 1, 2

这种算法的优点是: 只要媒体空闲, 站点就立即可发送, 避免了媒体利用率的损失
缺点是: 假若有两个或两个以上的站点有数据要发送, 冲突就不可避免



P-坚持算法

  1. 监听总线, 假如媒体是空闲的, 则以 P 的概率发送, 而以 (1-P) 的概率延迟一个时间单位
    一个时间单位通常等于最大传播时延的 2 倍
  2. 延迟一个时间单位后, 再重复步骤 1
  3. 假如媒体是忙的, 继续监听直至媒体空闲并重复步骤 1

P-坚持算法是一种既能像非坚持算法那样减少冲突, 又能像 1-坚持算法那样减少媒体空闲时间的折中方案
问题在于如何选择 P 的有效值, 这要考虑到避免重负载下系统处于的不稳定状态. 假如媒体是忙时, 有 N 个站有数据等待发送,
一旦当前的发送完成时, 将要试图传输的站的总期望数为 NP. 假如选择 P 过大, 使 NP>1, 表明有多个站点试图发送, 冲突就
不可避免. 最坏的情况是, 随着冲突概率的不断增大, 而使吞吐量降低到零
所以必须选择适当 P 值使 NP<1. 当然 P 值选得过小, 则媒体利用率又会大大降低


令牌环

令牌环上传输的小的数据 (帧) 叫为令牌, 谁有令牌谁就有传输权限. 如果环上的某个工作站收到令牌并且有信息发送,
它就改变令牌中的一位(该操作将令牌变成一个帧开始序列), 添加想传输的信息, 然后将整个信息发往环中的下一工作站
当这个信息帧在环上传输时, 网络中没有令牌, 这就意味着其它工作站想传输数据就必须等待. 因此令牌环网络中不会发生
传输冲突

时间: 2024-10-21 21:32:24

网络知识 (抄书)的相关文章

TCP/IP 网络编程 (抄书笔记 5) -- select 和 IO 复用

TCP/IP 网络编程 (抄书笔记 5) – select 和 IO 复用 TCP/IP 网络编程 (抄书笔记 5) – select 和 IO 复用 利用 fork() 生成子进程 可以达到 服务器端可以同时响应多个 客户端的请求, 但是这样做有缺点: 需要大量的运算和内存空间, 每个进程都要有独立的内存空间, 数据交换也很麻烦 (IPC, 如管道) IO 复用: 以太网的总线结构也是采用了 复用技术, 如果不采用, 那么两两之间就要直接通信 网络知识 int server_sock; int

TCP/IP 网络编程 (抄书笔记 1) -- TCP

TCP/IP 网络编程 (抄书笔记 1) – TCP TCP/IP 网络编程 (抄书笔记 1) – TCP Table of Contents server client 更好的 client 端实现 来源: <TCP/IP 网络编程> 抄书: 通信的双方都各自 拥有 输入缓存和输出缓存 socket 的 write 函数并不是立即传输数据, 而是写到输出缓存区, 到达另一端的输入缓存区 socket 的 read 函数调用的瞬间, 就从输入缓存区中读取数据 TCP 协议中的滑动窗口会保证 数

网络知识学习摘要

>>>>>网络基础知识<<<<< 画出IOS/OSI七层协议,每层的功能,举例每一层有什么协议, 每层传输的数据的名称. 简述协议层层封装和层层解析的过程. 画出TCP/IP分层,和IOS/OSI的每层的对应关系. 主要的局域网技术?(总线型.令牌环.FDDI) 共享式以太网和交换式以太网? 以太网帧格式? 单播.组播.广播 中继器.集线器.网桥.二层交换机.三层交换机.路由器? 介绍下网管? 简述路由交换原理? 路由器工作原理? 交换机工作原理

TCP/IP 网络编程 (抄书笔记 2) -- UDP

TCP/IP 网络编程 (抄书笔记 2) – UDP TCP/IP 网络编程 (抄书笔记 2) – UDP Table of Contents server client connect 来源: <TCP/IP 网络编程> 抄书: TCP 协议若要向 10 个客户端提供服务, 除了需要 listen 套接字外, 还需要 10 个服务器端套接字 (accept), 但是在 UDP 中, 不管是服务器端还是客户端都只需要 1 个套接字 udp 的 client 不需要 bind, 调用 sendt

TCP/IP 网络编程 (抄书笔记 4) -- 管道: 进程间通信

TCP/IP 网络编程 (抄书笔记 4) – 管道: 进程间通信 TCP/IP 网络编程 (抄书笔记 4) – 管道: 进程间通信 int fds[2]; pipe(fds); write(fds[1], buf, strlen(buf)); read(fds[0], buf, BUF_SIZE); 如果两个进程的通信只是 单纯的一方写, 然后另一方读 的情况, 那么 我们的管道操作没有问题, 但是: char str1[] = "str1"; char str2[] = "

TCP/IP 网络编程 (抄书笔记 3) -- 僵尸进程和多任务并发服务器

TCP/IP 网络编程 (抄书笔记 3) – 僵尸进程和多任务并发服务器 TCP/IP 网络编程 (抄书笔记 3) – 僵尸进程和多任务并发服务器 Table of Contents 僵尸进程的产生 避免僵尸进程 信号 多任务的并发服务器 僵尸进程的产生 子进程先退出, 父进程没有退出 ==> 僵尸进程 父进程先退出, 子进程没有退出 ==> 子进程被 0 号进程回收, 不会产生僵尸进程 pid_t pid = fork(); if (pid == 0) { // child printf(&

不可不知的网络知识与工具

不可不知的网络知识与工具 通常在开发.测试.生产上会遇到各种各样的网络问题,如何快速定位问题,需要了解相关知识,掌握相关工具. 1.私有IP的地址 私有IP就是在本地局域网上的IP,与之对应的是公有IP.由于我们目前使用的IPv4协议的限制,现在IP地址的数量是有限的.这样,我们就不能为居于互联网中的每一台计算机分配一个公网IP.所以,在局域网中的每台计算机就只能使用私有IP地址了.私有IP地址是一段保留的IP地址,只是使用在局域网中,在Internet上是不使用的.我们可以根据需要来选择适当的

网络知识学习2---(IP地址、子网掩码、端口原理的讲解)

紧接着:网络知识学习1 1.IP地址    IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16:16:C是24:8) 私有IP讲解 2.子网掩码 标准子网掩码,A的是255.0.0.0:B是255.255.0.0:C是255.255.255.0 IP和子网掩码不能单独使用,必须同时使用 不同网段:同一个网段中的不同主机 合理的子网掩码:只要1不断开就是 3.端口的作用 在传输层一方面需要确认

[转] - Linux网络编程 -- 网络知识介绍

(一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端        在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序. 比如我们使用ftp程序从另外一        个地方获取文件的时候,是我们的ftp程序主动同外面进行通信(获取文件), 所以这个地方我们的ftp程序就是客户端程序. 服务端        和客户端相