Chapter 1: Introduction Our goal: get “feel” and terminology(术语) more depth, detail later in course Overview: what’s the Internet? what’s a protocol? network edge; hosts, access approach: 以Internet 为例讲解 net(接入网), physical media network core: packet/circuit switching(分组交换/电路交换), Internet structure performance: loss, delay, throughput security protocol layers, service models Introduction 1-1 history 网络的本质 多个脑子/设备/处理器 相互连接(无线/有线) 既定协议 What’s the Internet: 基本元素(实体) 成千上万个互连的计算 Mobile network 机设备: Global ISP 主机:一种端系统 运行网络应用 Home network communication links 光纤, 铜轴, 无线, 卫星 传输速率= Regional ISP Institutional network bandwidth(带宽) Routers/Switch: forward packets Introduction 1-3 What’s the Internet:基本元素(软体) protocols 控制着信息的收发 e.g., TCP, IP, HTTP, Skype, Ethernet Internet: “network of networks” Mobile network 松散的层次结构 公共的因特网和专用内联网 Global ISP Home network Regional ISP Institutional network Internet standards RFC: 协议/机制标准 IETF: 标准组织 Introduction 1-4 What’s the Internet: 服务 为分布式应用程序提供基础服 务: Web, VoIP, email, games, e-commerce, file sharing Internet服务: reliable data delivery from source to destination(可靠传输) “best effort” (unreliable) data delivery(尽力而为) Introduction 1-5 Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge end systems, access networks, links 1.3 Network core circuit switching, packet switching, network structure 1.4 Delay, loss and throughput in packet-switched networks 1.5 Protocol layers, service models 1.6 Networks under attack: security 1.7 History Introduction 1-6 The network edge: 端系统(hosts): run application programs e.g. Web, email peer-peer at “edge of network” client/server model client host requests, receives service from always-on serverclient/server e.g. Web browser/server; email client/server peer-peer model: minimal (or no) use of dedicated servers e.g. Skype, BitTorrent Introduction 1-7 网络边缘:面向连接服务 TCP服务[RFC 793] 可靠的,有序的字节流数据 :确认和重传,序列号 流控制:发送方不能过载接收方 拥塞控制:当网络拥塞时发送方“降低发送速率” UDP - 用户数据报协议[RFC 768]: 无连接 不可靠的数据传送 无流控 无拥塞控制 使用TCP的应用: HTTP (Web), FTP (文件传送), Telnet (远程注册), SMTP (电子邮件) 使用UDP的应用: 流媒体,电话会议,DNS Wireless access networks(无线接入) shared wireless access network via base station aka “access point” (AP) wireless LANs: 802.11b/g (WiFi): 11 or 54 Mbps router base station wider-area wireless access mobile provided by 移动运营商: hosts 中国移动、中国电信 2G/3G/4G 最终通过什么接入WAN ? 4G可达100M bps Introduction 1-9 Physical media: radio Radio link types: 无线通信是利 用电磁波信号 可以在自由空 间中传播的特 性进行信息交 换的一种通信 方式 Microwave 微波 e.g. up to 45 Mbps channels LAN (e.g., Wifi) 11Mbps, 54 Mbps 3G/4G satellite Kbps to 45Mbps channel (or multiple smaller channels) 270 msec end-end delay Introduction 1-10 双绞线 非屏蔽双绞线 (UTP:Unshilded Twisted Pair) 屏蔽双绞线 (STP:Shielded Twisted Pair) 常用的双绞线是5类线(CAT5)和超5类线(CAT5e), 可支持10/100/1000Mbit(5类线只能传输短距1000Mbit) ,双绞线的最大标准传输距离为100米 RJ45水晶头 Introduction 1-11 光纤:fiber 光纤:即光导纤维,是一种利用光在玻璃或塑料制成的纤 维中的全反射原理而达成的光传导工具;高带宽、低衰减 Introduction 1-12 Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge end systems, access networks, links 1.3 Network core circuit switching, packet switching, network structure 1.4 Delay, loss and throughput in packet-switched networks 1.5 Protocol layers, service models 1.6 Networks under attack: security 1.7 History Introduction 1-13 The Network Core Routers 互连 数据传输方式? 电路交换: 每次连接都有 专用线路,如电话网 分组交换: 传输资源共享 ,尽力而为 Introduction 1-14 电路交换: Circuit Switching 端到端资源预留 等待建立呼叫 主要特点: 专用资源: no sharing 服务有保证(象电路一样) 按需建立连接 Introduction 1-15 电路交换: Circuit Switching 网络资源(e.g., bandwidth) 被分为若干“片(pieces)” resource piece idle if not used by owning call (no sharing不共享) 电话接通了却没说话 (资源仍被占用) dividing link bandwidth into “pieces” 两种复用方法 frequency division 频分多路复用 time division 时分多路复用 Introduction 1-16 电路交换: FDM and TDM Example: FDM频分多路 4 users frequency time TDM时分多路 frequency time Introduction 1-17 分组交换: Packet Switching 端到端传输信息分成若干个分组 多个用户的分组共享网络资源 each packet uses full link bandwidth store and forward: 分组是一跳一跳地传输 网络资源按需使用 带宽不再为谁而划分 成若干”Pieces” Introduction 1-18 Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge end systems, access networks, links 1.3 Network core circuit switching, packet switching, network structure 1.4 Delay, loss and throughput in packet-switched networks 1.5 Protocol layers, service models 1.6 Networks under attack: security 1.7 History Introduction 1-19 丢包和时延是怎样出现的? 分组到达链路的速率超过输出链路能力 分组排队,等待交换 A B 分组排队 (时延) 空闲(可用)缓存:如果无空闲缓存则到达的分组丢失(丢包) Introduction 1-20 分组时延的4种来源 2. 排队时延 1. 处理时延 等待输出链路传输的时间 检查比特差错 取决于路由器拥塞的等级 报头校验 路由查找决定输出链路 传输 A 传播 B 节点处理 排队 Introduction 1-21 在分组交换网中的时延 3. 传输时延 R= 链路带宽 (bps) L= 分组长度 (比特) 发送比特进入链路的时间= L/R 4. 传播时延 d = 物理链路的长度 s = 在媒体中传播的速 度 (~2x108 m/sec) 传播时延 = d/s 传输 A 传播 B 节点处理 排队 Introduction 1-22 “实际的”因特网时延和路由 “实际的”因特网时延和丢包是怎样的呢? Traceroute程序: 为路由器提供从源到目的地,朝着目的 地沿着端到端因特网路径的时延测量。对途中每节点 i : 发送3个分组,该分组在朝着目的地的路径上到达路由器 i 路由器i 将向发送方返回分组 发送方度量传输和响应间的时间间隔 如何实现? 3 探测分组 3 探测分组 3 探测分组 Introduction 1-23 “实际的”因特网时延和路由 互联网路径即是一系列路由器(三层交换机)的IP 地址列表 Introduction 1-24 Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge end systems, access networks, links 1.3 Network core circuit switching, packet switching, network structure 1.4 Delay, loss and throughput in packet-switched networks 1.5 Protocol layers, service models 1.6 Networks under attack: security 1.7 History Introduction 1-25 空中旅行的组织机构 票务 (购买) 票务 (投诉) 行李 (托运) 行李 (认领) 登机口 (登机) 登机口 (离机) 跑道 起飞 跑道 着陆 飞机 飞行 飞机 飞行 按线路飞行 网络服务的层次结构: 每一层实现一种服务 每层依赖由下面层次提供的服务 两端同一层的功能相关联、相对应 Introduction 1-26 因特网协议栈(TCP/IP) 应用: 支持网络应用 FTP, SMTP, STTP 应用层 运输: 一个进程到另一进程的数据传输 TCP, UDP 运输层 网络: 从源端到目的端数据报的选路 IP, 选路协议 网络层 链路: 在相邻“网元”之间传输数据 PPP, 以太网 链路层 物理: “在线上”的比特 物理层 Introduction 1-27 源 报文 Ht M Hn Ht M Hl Hn Ht M 段 数据报 帧 M 封装 应用层 运输层层 网络层 链路层 物理层 二层交换 Hl Hn Ht M 链路层 物理层 Hl Hn Ht M 交换机 目的地 M Ht M Hn Ht Hl Hn Ht M M 应用层 运输层层 网络层 链路层 物理层 Hn Ht Hl Hn Ht M M 网络层 链路层 物理层 Hn Ht Hl Hn Ht M M 路由器 三层转发 Introduction 1-28 Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge end systems, access networks, links 1.3 Network core circuit switching, packet switching, network structure 1.4 Delay, loss and throughput in packet-switched networks 1.5 Protocol layers, service models 1.6 Networks under attack: security 1.7 History Introduction 1-29 Network Security网络安全 The field of network security is about: 计算机网络如何遭受攻击 我们如何防止网络攻击 如何设备具有攻击免疫能力的体系结构 Internet 设计之初是没(怎么)考虑安全问题的 Introduction 1-30 TCP/IP层次结构 FTP ... HTTP TCP ... QQ UDP 应用层 传输层 Vinton G. Cerf IP 沙漏结构 细腰结构 哑钤结构 MAC 双绞线 PPP 光纤 网络层 ... ATM ... Wi-Fi 链路层 物理层 3-31 Chapter 2: Application Layer Our goals: 应用层协议的概念/实现 通过考察典型的应用级 协议,了解协议 基于传输层服务完成 客户机/服务器模式 peer-to-peer (P2P) 模式 HTTP FTP SMTP / POP3 / IMAP DNS 网络应用编程 socket API “套接字”编程接口 2: Application Layer 32 Application architectures Client-server Peer-to-peer (P2P) Hybrid(混杂) of client-server and P2P B/S模式(Browser/Server) 2: Application Layer 33 Client-server architecture server: 总是打开的主机 不变的IP地址 可扩展为服务器群 client/server clients: 与服务器通信 可以间歇地连接 可以是动态IP地址或私有IP 多个客户机彼此不直接地通信 2: Application Layer 34 Sockets 进程(process)通过 套接字 (socket)发送/接收报文 套接字类似于门 发送进程将报文推出门外 发送进程依赖门的另一侧 运输层基础设施,它将报 文送到接收进程的套接字 (它将报文交给接收进程) 操作系统提供的网络编程 接口 套接字API(应用程序调用): (1) 选择运输协议; (2) 确定一些参数的能力 主机或服务器 主机或服务器 由应用研发者控制 进程 进程 套接字 套接字 具有缓 存、变 量的TCP 因特网 具有缓 存、变量 的TCP 由操作系统控制 2: Application Layer 35 常见传输层服务需求总结 应用程序 数据丢失 带宽 时间敏感 文件传输 电子邮件 Web 文档 实时音频/视频 不能丢失 不能丢失 不能丢失 容忍丢失 不 不 不 是, 100’s msec 存储音频/视频 交互式游戏 即时通信 容忍丢失 容忍丢失 不能丢失 弹性 弹性 弹性 音频: 5kbps-1Mbps 视频:10kbps-5Mbps 同上 几kbps以上 弹性 是, 几秒 是, 100 msec 都可能 2: Application Layer 36 Internet transport protocols services TCP服务特征 面向连接(connection-oriented) — 客户机和服务器需要握手建连 可靠传输(reliable) — 在发送进程和接收进程之间可靠数据传递 不丢 不错 不乱 流水线传输(pipeline) — 基于字节 流传输,没有消息边界 全双工(full duplex data) — 同一连接两端可双向同时发送数据 流控制(flow control) — 发送方的速度不会淹没接收方 拥塞控制(congestion control) — 当网络过载时抑制发送速度 还有什么服务TCP不能提供? 最小带宽保证 传输实时性 安全保证 37 Internet transport protocols services 无连接 不可靠 无流控 UDP 服务特征 数据报传输 无拥塞控制 无安全保证 Best Effort Transmission 尽力而为 UDP什么都不做,有什么用啊? UDP的优势: 非面向连接,快速传输(3次握手将增加时延) 接收端/发送端处理极为简单 段首部小,即附加负载小 UDP适用于一对多通信 电话会议,体育直播等 38 Chapter 2: Application layer 2.1 Principles of network applications app architectures app requirements 2.2 Web and HTTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.5 DNS 2: Application Layer 39 Web and HTTP Web网页由对象(object)组成 对象可以是HTML文件,JPEG图片,Java小程序,音频 文件,… Web页由基本的HTML文件组成 ,基本的HTML文件包括 了几个引用对象 每个对象可由URL寻址 URL的例子: www.someschool.edu/someDept/pic.gif 主机名 路径名 2: Application Layer 40 URL(Uniform Resource Locator) 统一资源定位符 URL 的3个组成部分: host name(主机名) path name(路径名) access protocol(访问协议) Form(形式): access protocol://IP address(host name):port number/pathname/file 举例. http: // www.someschool.edu:80/somedept/pic.gif http://www.cnu.edu.cn/kjc.htm ftp:// 202.204.220.13:21 2: Application Layer 41 HTTP overview HTTP(HyperText Transfer Protocol,超文本传输协议),用 于从WWW服务器传输超文本到本地浏览器 客户机向服务器发起TCP 连接(产生套接字 (socket)) ,端口80 PC 运行 Explorer 服务器监听,从客户机接 受TCP连接 在浏览器(HTTP客户机) 和Web服务器(HTPP服务 器)之间交换HTTP报文 (应用层协议报文) 服务器运行Apache Web 服务器 Mac 运行 Navigator 2: Application Layer 42 HTTP request message 两类HTTP报文:请求(request),响应(response) HTTP请求报文 : ASCII (人可读的格式) 请求行 (GET, POST, 首部命令) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 首部行 Connection: close Accept-language:fr 回车,换行指示 报文的结束 非持久连接 2: Application Layer 43 User-server state: cookies 许多重要的Web站点使用cookies 四个部分: 1)在HTTP响应报文中的cookie 首部行 set-cookie:1678 2)在HTTP请求报文中的cookie 首部行 cookie:1678 3)保持在用户主机中的 cookie 文件并由用户浏览器管理 4)位于Web站点的后端数据库 2: Application Layer 44 Chapter 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server 2: Application Layer 45 FTP:文件传输协议 File Transfer Protocol,文件传输协议,实现本地到服务器之 间的文件上传与下载 FTP FTP 用户接口 客户机 主机上 的用户 文件传输 FTP 服务器 远程文件系统 本地文件 系统 客户机/服务器模型 客户机: 发起传输一侧(到远端/从远端) 服务器: 远程主机 ftp 服务器: 端口 21 2: Application Layer 46 FTP:分开的控制和数据连接 FTP客户机联系FTP服务器的21 号端口,指定TCP为运输协议 TCP 控制连接 端口 21 当服务器接收到一个文件传输 命令时,该服务器打开到客户 机的一个数据连接(第2个TCP连 接) 在传输一个文件后,服务器关 闭连接 FTP 客户机 TCP 数据连接 端口20 FTP 服务器 服务器打开第二个TCP数据连 接,以传输另一个文件 2: Application Layer 47 FTP的控制和数据连接 控制连接 FTP服务器监听TCP的21号端口 客户端用x号端口主动连接服务 TCP 控制连接 端口 21 器21号端口 数据连接 FTP客户端监听TCP的y号端口 FTP 客户机 TCP 数据连接 端口20 FTP 服务器 服务器端用20号端口主动连接客 户端y号端口 2: Application Layer 48 Chapter 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket programming with UDP SMTP, POP3, IMAP 2.5 DNS 2: Application Layer 49 Electronic Mail电子邮件 三个主要部分: 邮件 服务器 简单邮件传输协议: SMTP SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它 是一组用于由源地址到目的地址传 送邮件的规则 基于TCP实现,端口号为25 用户代理:亦称为 “邮件阅读器”例如 Foxmail, Outlook 用户邮箱 用户 代理 用户代理(在客户端主机上) 邮件服务器 输出 报文队列 用户 代理 SMTP 邮件 服务器 用户 代理 SMTP SMTP 邮件 服务器 用户 代理 用户 代理 用户 代理 2: Application Layer 50 Scenario: Alice sends message to Bob 1) Alice使用UA写邮件(to [email protected]) 2) Alice的UA向其邮件服务器发送报文;报文放置在报文队列中 3) Alice的邮件服务器的SMTP客户端打开与Bob的邮件服务器的TCP连接 4) Alice的邮件服务器SMTP客户端通过TCP连接发送Alice的报文 5) Bob’的邮件服务器将该报文放入Bob的邮箱 6) Bob调用其用户代理来读报文 Bob 1 user agent Alice 2 mail server 3 mail server 4 6 user agent 5 2: Application Layer 51 Mail access protocols 邮件访问协议 SMTP SMTP 用户 代理 发送方邮件服务器 邮件访问 协议 用户 代理 接收方邮件服务器 SMTP: 交付邮件到邮件服务器 (推协议) 邮件访问协议:从邮件服务器获取邮件 (拉协议) POP3: 邮局协议(第3版) [RFC 1939] • 授权 (代理 <-->服务器) 并下载 IMAP: 因特网邮件访问协议 [RFC 1730] • 更多特色 (更复杂) HTTP: Hotmail , GMail等 2: Application Layer 52 Chapter 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server 2: Application Layer 53 DNS: Domain Name System 因特网主机、路由器: IP地址(32 bit) :用于数据报寻址 “名字”, 如www.yahoo.com 问题: IP地址和名字之间如何映射? 域名系统: 分布式数据库 由大量层次化的域名服务器实现 2: Application Layer 54 Distributed, Hierarchical Database 分布式层次 根DNS服务器 根 项级 org DNS 服务器 com DNS 服务器 权威 yahoo.com DNS 服务器 amazon.com DNS 服务器 pbs.org DNS 服务器 edu DNS 服务器 poly.edu umass.edu DNS 服务器 DNS 服务器 客户机要求www.amazon.com 的IP地址 客户机请求根服务器得到com DNS服务器的IP地址 客户机请求com DNS服务器以得到 amazon.com的 DNS 服务器的IP地址 客户机请求amazon.com DNS服务器以得到 www.amazon.com 的IP地址 2: Application Layer 55 Local Name Server 本地域名服务器 并不严格属于DNS层次结构 每个ISP(住宅ISP、公司、大学)都会有一个 也称为“默认域名服务器” 当主机发出DNS请求时,请求先被发送到其本 地名字服务器 作为代理,将请求转发到等级结构 2: Application Layer 56 DNS name resolution example 根DNS 服务器 域名解析示例 2 3 顶级域DNS 服务器 4 位于cis.poly.edu的主机 想要获取 gaia.cs.umass.edu 的IP 地址 5 本地DNS 服务器 dns.poly.edu 1 8 请求主机 7 6 权威 DNS 服务器 dns.cs.umass.edu cis.poly.edu gaia.cs.umass.edu 2: Application Layer 57 递归请求 根DNS服务器 递归请求: 2 将名字解析的负担全放 在“联系的名字服务 器” 负担沉重? 迭代请求: “联系的服务器”用要 另一名字服务器回答 “我不知道该名字,但你 可以询问这个服务器” 3 7 TLD DNS 服务器 6 本地DNS服务器 dns.poly.edu 1 5 4 8 请求主机 权威DNS 服务器 dns.cs.umass.edu cis.poly.edu gaia.cs.umass.edu 58 DNS 记录 DNS: 分布式数据库存储资源记录 (RR) RR 格式: (name , value , type, ttl) Type=A name 是主机名 value是IP地址 A记录用来指定域名对应的IP地址 Type=NS name 是域 (如 foo.com) Value是该域的权威域名服 务器的IP地址 记录某域名由哪个域名服务器解析 Type=CNAME name 是对某些“规范的”(真 实)名字的别名 value 是规范名 别名记录 Type=MX Value是与name相联系的邮件 服务器 指向邮件服务器 59 DNS protocol, messages 2: Application Layer 60 Chapter 2: Application layer 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail 2.6 P2P applications 2.7 Socket programming with TCP 2.8 Socket programming with UDP SMTP, POP3, IMAP 2.5 DNS 2: Application Layer 61 Socket programming 套接字编程 目标: 构建基于套接字通信的客户机/服务器应用程序 套接字 API 在 BSD4.1 UNIX引入, 1981 由应用程序显式产生、使用 和释放 客户机/服务器模式 通过套接字 API 提供两类传 输服务: 不可靠数据报传输 可靠, 面向字节流传输 套接字 由应用程序产生、OS 控制的接口(一扇门), 通过套接字应用进程 能够与其他应用进程 发送和接收报文 2: Application Layer 62 TCP Socket-programming 套接字: 应用程序进程和端到端运输协议(UCP 或 TCP)之间的门 传输层以下(含传输层)服务由操作系统内核提供 TCP服务: 从一个进程到另一个的可靠字节流传输 由应用程序 研发者控制 由操作系统控制 进程 进程 套接字 具有缓存, 变量的 TCP 套接字 具有缓存, 变量的 TCP 主机或服务器 internet 由应用程序 研发者控制 由操作系统控制 主机或服务器 2: Application Layer 63 TCP Socket programming 服务器进程必须首先运行 服务器必须已经生成相应的 套接字 (门) ,以欢迎客户端 的联系 客户端必须主联系服务器 客户端通过以下方式联系服务器 创建客户机本地TCP套接字 定义(描述)服务器进程的IP地 址,端口号 客户端产生套接字后,客户 端TCP创建到服务器TCP的连 接 (connect()) 当收到客户端连接, 服务器 TCP 为 服务器进程生成新的套接字 ,与客 户机通信 允许服务器与多个 客户机交互 源IP、源端口号用于区分客户端 (详情参见第3章) 应用程序观点 TCP在客户机和服务器之间提供 可靠的、按序的字节传输(管道) 2: Application Layer 64 Socket programming with UDP UDP: 在客户端和服务器之间无“连接” 不握手 application viewpoint 发送方每次发送分组,都要设 置相应的目的端的IP地址和端 口号 UDP为客户机和服务器提供 不可靠的传输 服务器必须从接收到的分组中 提取发送者的IP地址,端口号 UDP: 数据传输可能乱序或丢失 2: Application Layer 65
© Copyright 2024 ExpyDoc