1 / 131

TCP/IP 协议

TCP/IP 协议. 陈庆章 qzchen@zjut.edu.cn 2011 年 05 月 09 日. 上次课内容复习. ARP 协议. ARP 将一个已知的 IP 地址映射到 MAC 地址。 想一想:为何要进行映射? 映射方法: 已知: IP 地址 1 )检查本地 ARP 高速缓存表,若找到 IP 地址对应的表项,则取出表项中的 MAC 地址; 2 )若 IP 地址不包含在表中,就向网上发广播来寻找。具有该 IP 地址的目的站用其 MAC 地址作为响应。 ARP 只能用于具有广播能力的网络。. A. C. B. 我需要 10.0.0.5 的 MAC 地址.

gage-hall
Download Presentation

TCP/IP 协议

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP/IP协议 陈庆章 qzchen@zjut.edu.cn 2011年05月09日

  2. 上次课内容复习

  3. ARP协议 • ARP将一个已知的IP地址映射到MAC地址。 • 想一想:为何要进行映射? • 映射方法: • 已知:IP地址 • 1)检查本地ARP高速缓存表,若找到IP地址对应的表项,则取出表项中的MAC地址; • 2)若IP地址不包含在表中,就向网上发广播来寻找。具有该IP地址的目的站用其MAC地址作为响应。 • ARP只能用于具有广播能力的网络。

  4. A C B 我需要10.0.0.5 的MAC地址 我就是,这是 我的MAC地址! • ARP操作的例子:A想知道10.0.0.5的MAC地址 10.0.0.1 10.0.0.2 10.0.0.5 IP = 10.0.0.5 MAC = ??? IP = 10.0.0.5 MAC = 08-00-00-20-2C-0A

  5. 用于主机、路由器、网关之间交换网络层信息 报告错误: unreachable host, network, port, protocol 进行request/reply 应答(ping命令) 同处于网络层但“凌驾”于IP之上: ICMP报文需要封装到IP分组中进行传输 ICMP报文: type和code两个字段的含义见右。 ICMP协议:Internet Control Message Protocol TypeCodedescription 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest. host unreachable 3 2 dest. protocol unreachable 3 3 dest. port unreachable 3 6 dest. network unknown 3 7 dest. host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header

  6. 用ICMP通知A ”我不知道如何 到达Z?” A B 发数据给Z 目的端无法到达 最常用的是“目的地无法到达”和“回声”消息。 R 广域网 到Z的数据 路由器R用ICMP消息通知目的地“不可达”

  7. 两类传输服务: 可靠的,按序点对点递交: TCP 拥塞控制 流量控制 连接建立 不可靠的(“尽力而为”), 无序的点对点或广播递交:UDP 不能提供的服务: 实时性 带宽承诺 可靠的广播通信 传输层协议

  8. 32 bits source port # dest port # sequence number acknowledgement number head len not used rcvr window size U A P R S F checksum ptr urgent data Options (可变长度) 应用数据 (可变长度) TCP分组格式 按发送数据的字节计算(不是按段数!) URG: urgent data (一般不用) ACK: ACK# valid 接收方一次能够接收的字节数 PSH: push data now (一般不用) RST, SYN, FIN: connection estab (setup, teardown commands) Internet checksum (as in UDP)

  9. 传输层端口号 • 在TCP和UDP的段头中有两个端口号 • 源端口号(source port-number) • 宿端口号(destination port-number) • TCP使用端口号来标识执行发送和接收的应用进程,端口号可以帮助TCP来分离字节流并且把相应字节传递给正确的应用程序。 • 根据IP地址和端口号就可以唯一地确定信宿主机中某个特定进程。 • 端口号可以是半永久的和临时的: • 服务器端在一个半永久性的端口上来监听客户端的访问请求。 • 客户端使用临时端口在本地标识一个对话。 • 客户端的端口只在使用TCP服务时候才存在,而服务器端口只要服务器进程在运行就一直存在。

  10. 常见的“众所周知的”端口号 F T P T e l n e t S M T P D N S T F T P S N M P H T T P 应用层 21 20 23 25 53 69 161 80 传输层 TCP/UDP 网络层 IP

  11. DNS协议

  12. 域名系统概述 • 许多应用层软件经常直接使用域名系统DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。 • 因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。 • 名字到域名的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。

  13. 因特网的域名结构 • 因特网采用了层次树状结构的命名方法。 • 任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。 • 域名的结构由若干个分量组成,各分量之间用点隔开: ….三级域名.二级域名.顶级域名 • 各分量分别代表不同级别的域名。

  14. 顶级域名 TLD (Top Level Domain) (1) 国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。 (2) 国际顶级域名 iTLD:采用.int。国际性的组织可在 .int 下注册。 (3) 通用顶级域名 gTLD:最早的顶级域名是: .com 表示公司企业 .net 表示网络服务机构 .org 表示非赢利性组织 .edu 表示教育机构(美国专用) .gov 表示政府部门(美国专用) .mil 表示军事部门(美国专用)

  15. 新增加了七个通用顶级域名 • .aero 用于航空运输企业 • .biz 用于公司和企业 • .coop 用于合作团体 • .info 适用于各种情况 • .museum 用于博物馆 • .name 用于个人 • .pro 用于会计、律师和医师等自由职业者

  16. 因特网的名字空间 树根 顶级域名 … … coop info biz aero com net org edu gov mil int cn uk … cctv hp mot ibm 二级域名 … hk js sh bj net gov edu com ac org … mail 三级域名 tsinghua fudan sjtu pku seu … mail csnetl ep 四级域名

  17. 用域名服务器进行域名解析 • 每一个域名服务器不但能够进行一些域名到 IP 地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到 IP 地址的转换时,就能够知道到什么地方去找别的域名服务器。 • 这种地址转换即地址解析(address resolution)。解析就是转换的意思。 • 因特网上的域名服务器系统也是按照域名的层次来安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。

  18. 四种不同类型的域名服务器 • 本地域名服务器(local name server) • 根域名服务器(root name server) • 顶级域名服务器(即TLD 服务器) • 权限域名服务器(authoritative name server)

  19. 本地域名服务器 • 每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,它也称为默认域名服务器。 • 当主机发出 DNS 查询报文时,这个查询报文就首先被送往该主机的本地域名服务器。 • 本地域名服务器离用户较近,一般不超过几个路由器的距离。 • 若所要查询的主机也处在本地 ISP 的管辖范围,那么本地域名服务器就立即能把所查询的主机名转换为 IP 地址。否则就需要再去询问其他的域名服务器。

  20. 根域名服务器——最高层次的域名服务器—— • 每个根域名服务器都知道所有的顶级域名服务器的域名及其 IP 地址。 • 现有 13 个不同 IP 地址的根域名服务器,共有一百多个根域名服务器机器分布在世界各地。 • 当 DNS 客户向根域名服务器发出查询时,路由器就把查询转发到离这个 DNS 客户最近的一个根域名服务器。这就加快了查询过程,更合理地利用了因特网资源。 • 根域名服务器并不直接把域名直接转换成 IP 地址。在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址回答本地域名服务器。

  21. 顶级域名服务器 • 顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。 • 当收到 DNS 查询请求时就给出相应的回答(可能是最后的结果,也可能是下一步应当找的权限域名服务器的 IP 地址)。

  22. 权限域名服务器 • 每一个主机都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的主机名应当转换成什么 IP 地址。 • 因特网允许各个单位根据自己的具体情况把本单位的域名划分为若干个域名管辖区(zone)(管辖区也可以简称为区),一般就在各管辖区中设置相应的权限域名服务器。 • 管辖区是“域”的子集。管辖区可以小于或等于域,但不可能大于域。

  23. 域名管辖区的的划分 域 abc.com 顶级域名服务器 com 管辖区 abc.com abc 管辖区 y.abc.com 管辖区 abc.com 的 权限域名服务器 管辖区 y.abc.com 的 权限域名服务器 x y u v w t

  24. 域名的解析过程 • 主机向本地域名服务器的查询一般都是采用递归查询(recursive query)。 • 递归查询就是如果本地域名服务器不知道被查询域名的 IP 地址时,那么本地域名服务器就以 DNS 客户的身份向某个根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。

  25. 本地域名服务器向根域名服务器查询 • 优先采用迭代查询(iterative query),即循环查询。 • 当根域名服务器收到查询请求报文但并不知道被查询域名的 IP 地址时,这个根域名服务器就把自己知道的顶级域名服务器的 IP 地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。 • 顶级域名服务器在收到本地域名服务器的查询请求后,就告诉本地域名服务器下一步应当向哪一个个权限域名服务器进行查询。 • 最后主机就知道了所要解析的域名的IP地址。 • 本地域名服务器也可以采用递归查询。

  26. 迭代查询 ④ ③ ⑤ ② ⑥ ⑦ 递归 查询 ⑧ ① y.abc.com的IP地址 顶级域名服务器 dns.com 根域名服务器 本地域名服务器 进行迭代查询 本地域名服务器 dns.xyz.com 权限域名服务dns.abc.com m.xyz.com

  27. 递归查询 ③ ⑥ ④ ⑦ ② ⑤ 递归 查询 ① ⑧ y.abc.com的IP地址 顶级域名服务器 dns.com 根域名服务器 本地域名服务器 进行递归查询 本地域名服务器 dns.xyz.com 权限域名服务dns.abc.com m.xyz.com

  28. 高速缓存域名服务器 • 为了提高 DNS 查询效率,并减轻根域名服务器的负荷和减少因特网上的 DNS 查询报文数量,广泛地使用了高速缓存高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。 • 例如不久前已有用户查询过域名为 y.abc.com 的 IP 地址,则本地域名服务器就不必再向根域名服务器重新查询 y.abc.com 的 IP 地址了,而是直接把高速缓存中存放的上次查询结果(即 y.abc.com 的 IP 地址)告诉用户。

  29. 使用高速缓存的好处 • 假定本地域名服务器的缓存中并没有 y.abc.com 的 IP 地址,而是存放着顶级域名服务器 dns.com 的 IP 地址,那么本地域名服务器就不必向根域名服务器进行查询,而可以直接向 com 顶级域名服务器发送查询请求报文。 • 这样不仅可以大大减轻根域名服务器的负荷,而且也能够使因特网上的 DNS 查询请求和回答报文的数量大为减少。

  30. 缓存中保存项目有一定时限 • 由于域名到 IP 地址的绑定有可能发生变化(但并不会经常改变),为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并处理超过合理时间的项目(例如,典型的数值是每个项目只存放 48 小时)。 • 当域名服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新到授权管理该项目的域名服务器获取绑定信息。 • 当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的准确性。

  31. 在主机中也很需要高速缓存 • 许多主机在启动时从本地域名服务器下载名字和地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到欲解析的域名时才向本地域名服务器发送查询请求报文。 • 维护本地域名服务器数据库的主机自然应该定期地检查域名服务器以获取新的映射信息,而且主机必须从缓存中删掉无效的项。 • 由于域名改动并不频繁,大多数网点不需花太多精力就能维护数据库的一致性。

  32. 提高域名服务器的可靠性 • DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器(master name server),其他的是辅助域名服务器(secondary name server)。 • 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。 • 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

  33. 应用层协议Telnet

  34. 什么是Telnet? • Telnet是Telecommunication Network Protocol的英文缩写。 • 用户在本地发出命令,通过IP网络,进入另一台机器的系统,这个过程即称为远程登录。 • 用户通过本地计算机登录到其他计算机上,本地计算机就成为了那台计算机的“终端”,与那台机器本身的终端享有同样的待遇,在它的权限范围内操作那台计算机。 • 大多数提供远程登录的目标系统以UNIX为主。 • 注意:远程登录中的“远”字并非指距离,而是指不是从本地登录到这台计算机。

  35. 远程终端协议 TELNET • TELNET 是一个简单的远程终端协议,也是因特网的正式标准。 • 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。 • TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。

  36. 客户服务器方式 • 现在由于 PC 机的功能越来越强,用户已较少使用 TELNET 了。 • TELNET 也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。 • 和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。

  37. 网络虚拟终端 NVT 格式 美国 加州大学 中国 浙江工业大学 Internet Username: Password: Telnet Server

  38. 网络虚拟终端 NVT 格式 • 客户软件把用户的击键和命令转换成 NVT 格式,并送交服务器。 • 服务器软件把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。 • 向用户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式。

  39. TELNET 定义的一些控制命令 (1) DO (选项代码) 表示要求对方执行该选项 WILL (选项代码) 同意执行此选项 (2) DO (选项代码) 表示要求对方执行该选项 WON'T (选项代码) 不同意,状态不变 (3) WILL (选项代码) 表示我想执行该选项 DO (选项代码) 同意执行此选项 (4) WILL (选项代码) 表示我想执行该选项 DON'T (选项代码) 不同意,状态不变 WON'T (选项代码) 证实状态不变

  40. 如何使用Telnet • 启动telnet客户端程序 telnet [remote-system] [port-number] • 其中 • telnet: 命令名。注意也有别的名称,如NVT220等。 • remote-system:目标主机名(域名)或目标主机的IP地址。 • port-number: 端口号。它用于标识服务器上的telnet服务 程序进程。telnet的默认端口号是23。 • telnet的内部命令行提示符为: telnet>

  41. 启动客户程序例(UNIX/Win DOS) • 启动时直接指明要连接的目标主机 $telnet www.zjut.edu.cn指明目标主机名 $telnet 202.117.35.70指明目标主机IP地址 • 启动时不指明目标主机 $telnet • 这时将进入telnet内部命令状态 telnet>内部命令提示符 • 在内部命令状态下键入open命令连接远程主机 telnet>open towel.blinkenlights.nl(星球大战) telnet>open forum.byr.edu.cn(北邮论坛)

  42. 连接时远程主机将要求用户输入用户名和口令 login:<user-id > password:<password > • 如果通过了用户认证,用户就可以像在远程主机的终端上一样操作远程主机了。 • 在远程主机(服务器)提示符下,用户可以在本地计算机上输入远程系统命令,如email、lynx、pico、ls、pwd等。 • 断开与远程主机的连接 • 在远程系统提示符下键入命令:exit,logout或Ctrl-D

  43. 一些可以访问的网站

  44. 应用层协议SMTP

  45. 电子邮件(E-mail) • 电子邮件是因特网上最典型的服务之一: • 电子邮件系统的组成 • 用户代理(User Agent) • 功能:编辑、发送、接收、阅读和管理电子邮件。 • 常见的用户代理有: • Outlook、Outlook Express、Foxmail等。 • 邮件服务器(E-mail Server) • 功能:类似“邮局”,接收和转发电子邮件,向发信人报告邮件发送状态 • 按照客户服务器方式工作 • 既是客户,又是服务器

  46. 电子邮件协议 • 发送/转发邮件: • SMTP(Simple Mail Transfer Protocol)[RFC 821、822] • MIME(Multipurpose Internet Mail Extension)[RFC 1521] • 读取邮件: • POP3(Post Office Protocol)[RFC 1939] • IMAP4(Internet Message Access Protocol)[RFC 2060

  47. 电子邮件发送和接收过程 • 发送端的SMTP客户进程使用SMTP协议把邮件队列中的邮件发送给接收端的SMTP服务进程。 • 发送完后,关闭TCP连接。 • 发送端邮件服务器中的SMTP客户进程发现邮件队列中有待发送的邮件,就与接收端邮件服务器建立TCP连接。 • 发送端邮件服务器收到邮件后,将邮件放入邮件缓存队列,等待发送。 • 点击观看 • 收件人收信时,运行用户代理,用户代理使用POP3协议将用户邮箱中的邮件下载到本地计算机。 • 用户代理利用SMTP协议将邮件传送给发件人的邮件服务器。 • 接收端邮件服务器将收到的邮件放入收件人的邮箱中。 • 发信人运行用户代理编辑邮件。 发件人的邮件服务器 收件人的邮件服务器 TCP连接 TCP连接 TCP连接 TCP连接

  48. 电子邮件地址 • 电子邮件用户必须有一个电子邮件地址 • 许多网站提供免费电子邮件服务,需要的话可到这些网站上申请一个邮箱(电子邮件地址)。 • 电子邮件地址由两部分组成: • 用户名 • 邮箱所在的邮件服务器的主机域名 • 用户名和邮件服务器域名之间用“@”隔开 用户名@邮件服务器域名 • 例如: • wgchen@zjut.edu.cn • chenwg@hotmail.com

  49. 简单邮件传输协议SMTP • SMTP是因特网上通用的电子邮件传输协议。它的特点是简单明了,容易实现。 • SMTP定义了邮件格式及如何通过TCP连接传输邮件。 • SMTP使用25号端口在两个邮件服务器之间建立TCP连接。 • SMTP协议由两个文档进行描述: • RFC821:描述了邮件服务器之间如何转发邮件; • RFC822:定义邮件信息的格式。 • SMTP规定邮件的全部内容(包括附件)——无论是什么类型的数据——都必须转换成7位ASCII码进行传输。

  50. 邮件格式[RFC822] • 标准的电子邮件信息由两部分组成: • 邮件头(header):相当于“信封”,主要包括 • 收件人地址 • 投递日期 • 邮件主题 • 发件人地址 • 邮件体(body):邮件正文,相当于装在信封内的信。 • 邮件格式的例子

More Related