习题课

Similar documents
Chap07

Chapter #

Chap06

/ / (FC 3)...

计算机网络编程

标题

一、

Intruduction to the NGINX stream subsystem and OpenResty's support

python_free

Slide 1

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

untitled

计算机网络实验说明

新美大酒店开放平台SDK(.NET版)使用说明.pages

<4D F736F F D20B8DFB5C8D1A7D0A3B1BEBFC6CEEFC1AACDF8B9A4B3CCD7A8D2B5D3A6D3C3D0CDC8CBB2C5C5E0D1F8D6B8B5BCD2E2BCFBA3A B0E6A3A92E646F6378>

构建高效的私有云平台V3

OpenResty在又拍云容器平台中的应用

第3章 计算机网络体系结构

9 Internet 10 Internet

ch09.PDF

<4D F736F F F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

入 大 立立 手 口 面 耳 鼻 耳 鼻 子 耳 鼻 生 生 耳 鼻 耳 鼻 耳 鼻 小 手 入 大 一 支 手 入 支 立立 手 入 支 手 入 石 口 口 支 手 支 手 手 支 入 入 入 人 人 人 人 人 田 手 入 耳 鼻 手 入 小 一 支 人 見見 赤 十 耳 鼻 金金 口 手 支

API网关在大数据开放中的应用-童剑-v0.3.key

csa-faq.pdf

ebook35-21

叮当旺业通

02 微服务设计原则与生态系统-final.key

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

untitled

站在巨人的肩膀上 - 使用Symfony框架开发你的下一个项目.key

Microsoft PowerPoint - 数据通信-ch1.ppt

水晶分析师

ebook15-12

Qcon北京2018-《唯快不破——高效定位线上 Node.js 应用内存泄漏》-黄一君


11N 无线宽带路由器

untitled

1

项目采购需求编写模板

Chap04

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 计 算 机 网 络 在

ac2017-joeyguo-2.0.key

C3_ppt.PDF

计算机网络

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

关于建立境内违法互联网站黑名单管理制度的通知

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

93年各縣國中教師甄試最新考情.doc

Python 和 人 工智能基 础课程 ( 第 二课 ) 张威, 雷雷萧萧

1 产 品 简 介 特 性 包 装 产 品 外 观 电 脑 系 统 要 求 硬 件 安 装 软 件 安 装 软 件 操 作 IP

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

不不可能完成的任务从 用户空间窃取内核数据 Yueqiang Cheng, Zhaofeng Chen, Yulong Zhang, Yu Ding, Tao Wei Baidu Security

Tangram For GMTC 2017.key

PowerPoint Presentation

AS北京2017-《知乎 Feed 流构架演进》-姚钢强.key

Hippy-VueConf

南華大學數位論文

Microsoft PowerPoint - os_4.ppt

目 彔 1. 准 备 工 作 登 彔 设 置 功 能 说 明 实 时 监 控 基 本 控 制 功 能 设 置 画 质 调 节 彔 像 与 抓 拍

IP505SM_manual_cn.doc

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 ( 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 ( 首 页

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5

响应式在iOS开发中的应用 For PDF

LV1

ESP-TOUCH_User_Guide__CN.pages

HKCERT

!!!!!

Bilibili海量监测平台的演进之路

untitled

LC3-分布式事务-姜宁

ECF_Signals_and_Nonlocal_Jumps_罗世通

Microsoft PowerPoint - µÚ5.7½Ú VxWorksÍøÂç±à³Ì[³Ìʤ].ppt

1.【可以发布,不需去二维码】AS北京2017-张振华-美丽联合容器云平台建设的实战分享.key

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

when-memory-safe-langueages-become-unsafe-defcon-china-cn

计算机网络编程

软件概述

vsysintroch

/

IP Camera

校友会系统白皮书feb_08

张炅轩-360基础架构之一:插件化漫谈-3.正式演讲.key

<4D F736F F D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F E646F63>


嵌入式Linux块设备驱动开发解析

持续集成下的开发分支模型.key

1-01

epub 61-2

201806fuchsia.key

ebook67-1

经华名家讲堂

声 明 Copyright 2013 普 联 技 术 有 限 公 司 版 权 所 有, 保 留 所 有 权 利 未 经 普 联 技 术 有 限 公 司 明 确 书 面 许 可, 任 何 单 位 或 个 人 不 得 擅 自 仿 制 复 制 誊 抄 或 转 译 本 书 部 分 或 全 部 内 容 不 得

计 算 机 网 络 基 础 任 务 教 程 () 组 成 计 算 机 网 络 的 每 台 计 算 机 都 是 独 立 的 即 计 算 机 之 间 没 有 明 显 的 主 从 关 系, 每 台 计 算 机 可 以 连 网 工 作, 也 可 以 不 连 网 工 作 (2) 建 立 计 算 机 网 络 的

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

ebook67-9

[Table_MainInfo]

<443A5CBAEEC3F75CB9D2CDE2CDF8D0C5CFA25C D315CD3D0C9ABBDF0CAF4C6F3D2B5C4DCD4B4B9DCC0EDD6D0D0C4BDA8C9E8CAB5CAA9B7BDB0B82E646F63>

免 责 申 明 和 版 权 公 告 本 文 中 的 信 息, 包 括 供 参 考 的 URL 地 址, 如 有 变 更, 恕 不 另 行 通 知 文 档 按 现 状 提 供, 不 负 任 何 担 保 责 任, 包 括 对 适 销 性 适 用 于 特 定 用 途 或 非 侵 权 性 的 任 何 担 保

Transcription:

习题课 章阳 yangzhang@whut.edu.cn http://yzhang.org

1. 物理理地址 (MAC) 存在于 层,IP 地 址存在于 层, 可以将 IP 地址分为 和主机号 2

Segment 数据段 Packet 数据包 Frame 帧 Bit 比特 3

1. 物理理地址 (MAC) 存在于 层,IP 地 址存在于 层, 可以将 IP 地址分为 和主机号 ( 数据链路路, 网络, 网络号 ) 4

2. 要实现 网络服务的可靠性需要提供 : 超 时 重传和 分析 : 设计 一个 网络协议, 或 一种 网络服务的时候, 检错 - 超时 - 重传 - 序号, 各有什什么作 用? 5

6

2. 要实现 网络服务的可靠性需要提供 : 超 时 重传和 ( 检错, 序号 ) 7

3. 发起对等通信的应 用程序称为, 等待接收 客户通信请求的程序称为 ( 客户 / 客户端, 服务器器 ) 对等通信 (P2P,Peer-to-Peer) 8

4. 在 TCP/IP 使 用中, 的模式占有主导地位, 其动机来源于 问题 ( 客户 / 服务器器 通信汇聚点 ) 分析 : 汇聚点问题 (Rendezvous dilemma) 空间上的 : 公园 里里两 人互相寻找 时间上的 : 快慢通信节点 君 生我未 生, 我 生君已 老老, 君恨我 生迟, 我恨君 生早 9

5. 在 UNIX 系统中创建新进程, 需要调 用系统函数 fork() windows 下 CreateProcess() fork 的三种返回值,-1, 0, PID( 进程 ID) 10

6.TCP/IP 协议定义的端点地址包括 和 (IP 地址, 端 口号 ) :8080, :21 11

7. 不不保存任何状态信息的服务器器称为 服务器器, 反之则称为 服务器器 ( 无状态, 有状态 ) 分析 无状态服务器器 : 如 WEB 服务器器,HTTP 服务 有状态服务器器 : 如游戏服务器器 12

8. 是指真正的或表 面的同时计算, 一个单处理理机多 用户的计算机可以通过 机制实现表 面的同时计算, 而在多处理理机下可以实现真正的同时计算 ( 并发, 复 用 ) 13

9. TCP 提供 面向 的服务, 而 UDP 提供 的服务 ( 连接, 无连接 ) 分析 :TCP- 虚连接 ( 虚电路路 ),UDP- 尽 力力发送 14

15

判断题 : 1. 有些场合下只能使 用 UDP 协议进 行行 网络通信 提示 : 内 网 IM 通信 ;DNS 域名解析 ; VANET; 16

Copyright: wilddogbaas UDP 弱 UDP 不不 用握 手, 不不提供流控 拥塞等功能, 传输不不可靠, 因此有时更更简单有效 ( 奥卡姆剃 刀?) 随着 网络环境变好,UDP 其实也够了了?(<5% packet loss + retransmission by application layer, NDN ) UDP 协议简单, 冗余功能少, 提升空间 大 17

物联 网与 UDP 18

判断 : 2. 服务器器使 用并发处理理可以完全防 止死锁? 分析 : 产 生死锁的四个条件 : 互斥条件 : 一个资源被 一个进程使 用 请求与保持条件 : 不不放弃已获得资源 不不剥夺条件 : 不不强 行行剥夺已获得资源 循环等待条件 : 进程循环等待释放资源 19

2. 服务器器使 用并发处理理可以完全防 止死锁? 20

判断 : 3. 发起对等通信的应 用程序为服务器器 分析 : 客户端 21

判断 4. TCP/IP 标准规定了了通信双 方在什什么时间以及 用什什 么 方式交互 22

TCP/IP 包含了了什什么? IP: 在 网络层 数据传输单元和格式, 数据递交 方法和路路由 TCP: 在传输层 数据包检查 超时检测 处理理 面向连接的服务 UDP 无连接的服务 23

判断 : 5. 客户程序可以将服务器器的 IP 地址或域名说明为常量量 分析 : const string UNIV_HOMEPAGE_URL= http:// www.whut.edu.cn 24

判断 : 6. TCP 提供流量量控制和拥塞控制 分析 :TCP 有,UDP 没有 25

7. 并发的 面向连接的服务器器可以有 n 个不不同的进程 fork() 产 生相同进程 26

8. 只能在 TCP 通信时使 用 connect 系统调 用 分析 :TCP 和 UDP 均调 用 connect() 建 立连接 区 别是? 27

TCP 与 UDP 调 用 connect() 的区别 TCP 调 用 connect - 已知 UDP 调 用 connect: 只记录对 方 IP 和端 口, 只探测调 用时连接错误 UDP 不不再 用 sendto, 而直接 用 send write - 一个 已连接的 无连接 UDP 可以多次调 用 connect 用于重新连接新的 IP 和端 口,TCP 不不 行行 28

判断 9. TCP/IP 地址族可以表示为 PF_INET? 分析 : 在头 文件 netinet/in.h,berkeley 规范 PF=Protocol Family (BSD 里里 =AF) AF=Address Family AF_INET, AF_INET6, PF_INET(incl. TCP, UDP), PF_INET6 29

10. 面向连接的服务易易于编程? 分析 : 更更加复杂还是更更加简单? 需要保持连接 有额外控制开销, 如差错控制 流量量控制 保证投递 ; 按序提交 30

问答 : 1. 请给出并发的 面向连接服务器器 ( 多进程 ) 设计算 法, 图示出进程结构, 并说明这种类型的服务器器的优 缺点 31

面向连接的服务器器在多个连接之间实现并发 ( 不不是在各个请求之间 ) 主 1 创建套接字并将其绑定到所提供服务的熟知地址上 让该套接字保持为 面向连接 主 2 将该端 口设置为被动模式 主 3 反复调 用accept 以便便接收来 自客户的下 一个连接请求, 并创建新的从线程或者进程来处理理响应 从 1 由主线程传递来的连接请求开始 从 2 用该连接与客户进 行行交互; 读取请求并发回响应 从 3 关闭连接并退出 32

优点 : 一个时刻可以处理理多个请求, 性能好 缺点 : 实现复杂, 难以构建和设计 33

2. 试分析 面向连接的服务器器和 无连接的服务器器各 自 的优缺点 34

回顾 : 面向连接和 无连接 面向连接 : 是电话系统服务模式的抽象, 即每 一次 完整的数据传输都要经过建 立连接 使 用连接 终 止连接的过程 无连接 : 是邮政系统服务的抽象, 每个分组都携带 完整的 目的地址, 各分组在系统中独 立传送 35

试分析 面向连接的服务器器和 无连接的服务器器各 自的优缺点 面向连接的服务的优点 : 1. 易易于编程 2. 自动处理理分组丢失, 分组失序 3. 自动验证数据差错, 处理理连接状态 面向连接的服务的缺点 : 1. 对每个连接都有 一个单独的套接字, 耗费更更多的资源, 维护开销 大 2. 在空闲的连接上不不发送任何分组 3. 始终运 行行的服务器器会因为客户的崩溃, 导致 无 用套接字的过多 而耗尽资 源 无连接服务器器优点 : 没有资源耗尽问题 缺点 : 需要 自 己完成可靠通信问题, 必要时, 需要 一种 自适应重传的复杂技术, 需要程序员具有相当的专业知识 对于可靠通信的场合, 尽量量使 用 TCP 36

3. 将 一组 大程序分解为 一系列列的 子程序 / 过程的好处是什什么? 试分析, 在客户程序的设计实现时, 为什什么为什什么要先抽象为 connecttcp(machine, service) 和 connectudp(machine, service) 两个模块, 而这两个模块 又具有共同的底层模块 connectsock? 37

将 一组 大程序分解为 一系列列的 子程序 / 过程的好处是什什么? 一个模块化的程序 比 一个等价的单个程序容易易理理解 排错和修改 如果程序员认真的设计了了过程, 还可以在其他程序中重新使 用这些过程 另外, 仔细选择过程可以使程序更更容易易移植 过程通过将细节隐藏起来, 提 高了了程序员所 用语 言的级别 构造客户和服务器器的时候, 使 用 网络服务的程序包括了了 一 大堆枯燥的细节,( 如端点地址等 ) 使 用过程来隐藏细节将减少出错的机会 使 用过程 ( 以及它所提供的较 高级的的操作 ) 可以避免重复, 使 用者可以在许多程序中使 用他们, 不不需要再考虑实现的细节 38

试分析, 在客户程序的设计实现时, 为什什么为什什么要先抽象为 connecttcp(machine, service) 和 connectudp(machine, service) 两个模块, 而这两个模块 又具有共同的底层模块 connectsock? 多数代码需要分配套接字 绑定地址并构成 网络连接, 这些重复出现因 而可以重 用 ;TCP/IP 网络是异种 网互联, 代码需要运 行行在不不同机器器的体系结构上, 因 而便便于移植 客户端应 用程序请求服务只能通过传输层, 而传输层有两种协议 TCP 和 UDP, 因此抽象的时候可分为两种情况 连接需要指明服务器器的 IP 地址和服务类型 ( 端 口号 ) 客户端采 用 TCP 和 UDP 共同的步骤都是获得套接字 ID, 因此可以考虑将获得套接字 ID 的过程合并, 仅仅采 用参数来标明到底采 用何种传输层协议 同时仍然需要传递的参数为服务器器的 IP 地址和服务类型 ( 端 口号 ), 所以将底层共 用 一个过程 connectsock 39

4. 在 I/O 复 用模型的关键是熟练掌握 select 函数, 该 函数的原型是 int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout); 1 请详细解释 select 函数的参数的意义, 以及执 行行结 果 2 如何利利 用 select 函数构造 一个最简单的多协议服务器器, 同时提供 TCP 和 UDP 服务? 画出进程结构图 40

int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout); select 函数功能 : 非阻塞 ( 与 recv,recvfrom 区别 ) 对套接 口集合扫描 (fd 文件描述字 file descriptor) 若扫描有消息, 则阻塞处理理, 反之则返回 41

int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout); maxfd 参数是所以监视的描述字中最 大的描述字加 1 中间三个参数分别表示监视的不不同条件的描述字集合 : readset 为读描述字集合,writeset 为写描述字集合, execptset 为异常描述字集合 timeout 参数为 select 函数最 长等待时间 42

int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout); Select 函数有三种执 行行情况 : 永远等待下去 : 仅在有 一个或以上描述字准备好 i/o 才返 回, 为此, 我们将 timeout 设置为空指针 等待固定时间 : 在有 一个描述字准备好时返回, 但不不超过 由 timeout 参数指定的秒数和微秒数 根本不不等待, 检查描述字后 立即返回, 这称为轮询 这种情况下,timeout 必须指向结构 timeval, 且定时器器的值必须为 0 43

int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout); select 执 行行结果 ( 返回值 ) 如果在指定超时值到达之前有 一个或多个描述字满 足 条件, 则函数返回值 大于零 ; 如果超时时间到时, 没有描述字满 足条件, 函数返回 值为 0; 如果 select 函数阻塞过程中, 发 生错误, 函数返回值 为 -1; 44

如何利利 用 select 函数构造 一个最简单的多协议服务器器, 同 时提供 TCP 和 UDP 服务? 画出进程结构图 要点 : 多协议服务器器可以由 一个执 行行线程构成, 该线程既可以在 TCP 也可以在 UDP 上使 用异步 IO 来处理理通信 服务器器最初打开两个套接字, 一个使 用 无连接的传输, 一个使 用 面向连接的传输, 使 用异步 IO 等待两个套接字之 一就绪 45