互联网技术及应用主讲人:李红岩课程介绍
基础课程,计算机网络
课程的目的与任务:
研究 TCP/IP协议栈各子层协议,重点理解应用层协议及部分底层协议原理,了解 TCP/IP的网络配置及维护。
课程的内容体系:
第一章 概述 第二章 SNIFFER原理第三章 ARP/RARP协议综述 第四章 UDP协议综述第五章 TCP协议综述 第六章 IP协议综述第七章 ICMP,IGMP协议 第八章 客户服务器模型第九章 TELNET协议 第十章 FTP协议第十一章 SMTP协议 第十二章 DNS协议第十三章 HTTP协议 第十四章 TFTP简述第十五章 SNMP简述 第十六章 开放式网络计算协议实验一 ICMP,IGMP分析 实验二 TELNET,FTP分析实验三 HTTP,SMTP分析
推荐教材及参考书:
教材:,TCP/IP Primer Plus 中文版,
参考书:,TCP-IP详解卷 1:协议,,Internet 核心协议权威指南,
实验工具,SnifferPro_V4.7
参考网址,http://www.cnpaf.net中国协议分析网第一章 概述
本章内容:
1.1 因特网概述
1.2 TCP/IP 网际互连的体系结构
1.3 TCP/IP协议族
1.3.1 TCP/IP的产生与发展
1.3.2 TCP/IP分层模型
1.3.3 TCP/IP协议族中各协议功能
1.3.4 复用和分解
1.3.5 深层的 TCP/IP协议和服务
1.4 端口号
1.5 应用编程接口
学习目标
1,掌握基本术语和概念
2,TCP/IP分层模型及其工作原理
3,了解 TCP/IP协议族各层协议的功能
4,复用和分解原理
5,端口号概念
1.1 因特网概述本节内容:
计算机网络的基本概念
internet拓扑结构
Internet组成部件计算机网络的概念
计算机网络 —— 互连起来、独立运行的计算机的集合
各计算机是独立自主的,其运行不依赖于其他计算机
计算机之间的连接是物理实现的
计算机之间能够进行信息交换
采用分组通信的方式
计算机网络的概念结构
主机( Host)
通信子网( Communication
Subnet)
转发结点 —— 用于转发数据包的专用计算机
H
H
HH
主机通信子网转发结点计算机网络的结构
网络拓扑 —— 归根结底最终就是信道的拓扑结构
种类:总线性、星型、环型、树型、网状
拓扑结构不同,其访问技术、性能、应用场合等也不同
延迟、吞吐率、可靠性、信道利用率、设备开销,.....
信道的种类
点到点( point-to-point)信道
两台主机(或转发结点)之间存在一条独享的物理信道
可能存在带宽浪费,但控制简单
一般用于广域网中的长距离通信
广播( broadcasting)信道
所有主机共享一条信道,通信数据以广播形式发送
带宽利用率高,但需要进行信道访问控制
常用于局域网中:总线型、环型,....,
数据交换的方式
电路交换 —— 通信双方建立一条实际的物理链路
存储转发和分组交换
报文交换( message switching)
分组交换( packet switching)
通信子网的内部机制
面向连接,提供虚电路( virtual circuit )服务
无连接,提供数据报( datagram)服务
Internet 的发展 —— 拓扑结构的演变
以 ARPA 网为主干的核心结构本地网点 1
ARPANET
主干网本地网点 3
本地网点 2
本地网点 4
R
R R
R
核心系统核心路由器本地网点本地网点本地网点本地网点
Internet 的发展 —— 拓扑结构的演变
对等主干结构 —— NSFNET 的引入
NS
FN
ET
骨干
AR
PA
NE
T
骨干R
R R
R
核心路由器 对等骨干的 多重互连
Internet 的发展 —— 拓扑结构的演变
自治系统 ( Autonomous System) 的引入
自治系统,在同一实体(如学校、企业或 ISP)管理下的主机、路由器及其他网络设备的集合。
自治系统
AS
自治系统
AS
主干网络自治系统网络
R R R核心路由器
Internet的组成自治系统
n
自治系统
1
核心网关网关 1 网关 2
自治系统
2
网关 n
主干网络
Internet的组成主干网络网络网络网络网络自治系统网关自治系统图5,3 8 I n t e r n e t 分层体系结构网关网关 网关网关因特网组成部件示例端系统,网络终端或边缘设备通信链路,端系统通过通信链路连接起来路由器,端系统常常通过路由器与通信链路间接相连
ISP,因特网服务提供商。由多个路由器和多段通信链路组成的网络本节小结
1,各种网络部件(如每个端系统、路由器等)之间的通信都需要遵从一定的语法规则,称之为“协议”。
2,所有因特网上运行的主要协议统称为 internet协议族,由于 TCP和 IP是其中最为重要的两个网络协议,所以常称为 TCP/IP协议族 。
1.2 TCP/IP 网际互连的体系结构本节内容:
网络互连的概念
TCP/IP网络互连的特点
TCP/IP常用概念
TCP/IP 网络的特点
互连网中,每一个网络是可自维持的
一个网络无论是否与其它网络互连,其自身都是可以自主运行的。
通过路由器(网关)来连接多个网络,构成互连网
互连网中,每一个网络都是可以全局唯一标识的
采用尽力而为( best-effort)的服务方式
使用应答 -重发机制,源端没有收到目的端返回的应答时,将重发数据包。
互连网是非集中式控制的
网络的运行不依赖于任何一个集中的管理实体。
网络互连的概念
( 1) 互连 ( Interconnection),是指网络在物理上的连接,两个网络之间至少有一条在物理上连接的线路,它为两个网络的数据交换提供了物资基础和可能性,但并不能保证两个网络一定能够进行数据交换,这要取决于两个网络的通信协议是不是相互兼容 。
( 2) 互联 ( internetworking),是指网络在物理和逻辑上,尤其是逻辑上的连接 。
( 3) 互通 ( intercommunication),是指两个网络之间可以交换数据 。
( 4) 互操作 ( interoperability),是指网络中不同计算机系统之间具有透明地访问对方资源的能力 。
根据网络进行网络互连所在的层次,常用的互连设备有以下几类:
物理层互连设备,即 中继器( Repeater);
数据链路层互连设备,即 网桥( Bridge);
网络层互连设备,即 路由器( Router);
TCP/IP 的网络互连
网际互连是通过路由器实现的路由器提供网络与网络之间物理和逻辑上的连通功能
TCP/IP 提供网络级的互连
连通性,分组可在网络中任何结点之间的传递(不论其是否具有直接的物理连接)
透明性,对用户和高层的应用隐藏了各网络的底层细节
对拓扑结构的适应性,能适应不同的网络拓扑结构以及拓扑的变化
网络中每个计算机都具有全局性的标识符(地址、名字)
R1
网络
1
网络
2
R
NRN
R
H H
H
H
Internet
N
H
TCP/IP 网络互连的透明性通过 TCP/IP 实现的网际互连隐藏了网络的细节(包括底层网络技术、拓扑结构等),提供通用的一致性的网络服务。互联网或 Internet 在逻辑上是一个统一的、整体的虚拟网络。用户完全可将其看作是一个单一的网络。
H H
H
H
H
Internet
TCP/IP常用概念
1,包
2,服务、接口、协议
3,路由器和终端节点
4,IP地址、域名
1,包
包( packet) 是网络上传输的数据片段,也称作分组。
网络上的数据源在传输之前要按照规定划分成若干组,每个组加上包头构成一个包,这个过程称为 封装 。
包是一种统称,在不同的协议不同的层次,包有不同的名字。如数据链路层的包叫 帧,IP层的包称为 IP数据报,TCP层的包称为 TCP报文 。
2,服务、接口、协议
服务、接口、协议 是 TCP/IP体系参考模型中非常重要的概念。
服务 是指特定一层提供的功能。例如,网络层提供网络间寻址的功能,可以说它向上一层(即传输层)提供了网间寻址服务;反之,也可以说传输层利用了网络层所提供的服务。
接口 是上下层次之间调用功能和传输数据的方法。上层通过使用接口定义的方法使用下层提供的服务。
协议 是对等层必须共同遵循的标准。 协议 是定义包格式以及包用途的规则集。例如,网络协议规定网络上的计算机如何彼此识别、数据在传输中应采取何种格式、信息到达后应如何处理等等。
3,路由器和终端节点
路由器 和 终端节点 是两种具有路由选择能力的设备。
路由器 用来连接两个或多个网络。它知道怎样将信息从网络的一个部分移到另一个部分。
终端节点 是用户与之交互的设备 —— 工作站,PC、
打印机、文件服务器等。终端节点能识别发给自己的信息,也能将信息发给它知道的网络设备,
对于不知道如何投递的信息,终端节点将其发送给本地路由器。
4,IP地址、域名
为了使连入因特网的主机在通信时能相互识别,每一台主机都分配有一个唯一的 32位地址,即 IP地址 。这些 3 2位的地址通常写成四个十进制的数,其中每个整数对应一个字节。这种表示方法称作“点分十进制表示法( Dotted decimal notation)”。
因特网对计算机的命名方案称为 域名系统( DSN)。
域名系统( D N S)是一个分布的数据库,由它来提供 I P地址和主机名之间的映射信息。
1.3 TCP/IP协议族
1.3.1 TCP/IP的产生与发展
1.3.2 TCP/IP分层模型
1.3.3 TCP/IP协议族
1.3.4 复用和分解
1.3.5 深层的 TCP/IP协议和服务
1.3.1 TCP/IP的产生与发展
美国国防部远景规划局 (ARPA)最先致力于互联网方面的研究。 ARPA技术包括一组规定计算机通信细节的网络标准。
它的正式名称是 TCP/IP互联网协议族,一般称为 TCP/IP(取名于它的两个主要标准 ) 。
加利福尼亚大学伯克利分校在 BSD UNIX上实现了 TCP/IP协议,并在此基础上提供了一种新的操作系统抽象,称为 套接字 (socket)。套接字抽象的作用非常重要,它使程序员很容易使用 TCP/IP协议,因此促进了研究人员对 TCP/IP的使用和实践。
TCP/IP协议构成了互联网的基本技术,连接了遍布家庭、
学校、公司和政府机关等大量用户。 TCP/IP的普及性远远超过了其它任何一种通信协议,因而成为了互联网通信中实际标准,这也是它备受重视的最重要的原因。
TCP/IP技术的特点
设计目标 —— 实现异种网的网际互连
顺应了网络互连的应用需求
采用了开放策略
与最流行的 UNIX 操作系统相结合标准化过程
究竟是谁控制着 T C P / I P协议族,又是谁在定义新的标准?事实上,有四个小组在负责
I n t e r n e t技术。
1) Internet协会( I S O C,Internet Society)
2) Internet体系结构委员会
( I A B,Internet Architecture Board)
3) Internet工程专门小组
( I E T F,Internet Engineering Task Force)
4) Internet研究专门小组( IR I F,Internet
Research Task Force)主要对长远的项目进行研究。
RFC(Requst For Commet)文档
所有关于 I n t e r n e t的正式标准都以 R F C
文档出版。
概念,TCP/ IP协议
TCP/ IP协议
TCP/IP是由一系列协议组成的协议簇 。 它本身指两个协议集,TCP
为传输控制协议,IP为互连网络协议 。
TCP协议,提供了一种可靠的 端口到端口 ( 进程到进程 ) 的 数据交互服务 。 它把要发送的的 报文 ( 即数据 ),分成每块不超过 64K字节的数据段,再将每个数据段作为一个独立的 数据包 传送 。 在传送中,
如果发生丢失,破坏,重复,延迟和乱序等问题,TCP就会重传这些数据包,最后接收端按正确的顺序将它们重新组装成报文 。
IP协议,IP协议主要规定了数据包 传送的格式,除了要传送的数据外,
还带有 源地址 和 目的地址 。 目的地址可以帮助数据包寻找到达目的地的路径 。 由于因特网是一个网际网,数据从源地址到目的地址,
途中要经过一系列的子网,靠相邻的子网一站站地传送下去 。 IP协议在传送过程中不考虑数据包的丢失或出错,纠错功能由 TCP协议来保证 。
TCP/IP是如何工作的?
1) TCP首先把数据流分割成若干个大小不超过
1500个字符的数据包;
每个数据包被封装到一个 IP 协议“信封”。即
IP协议为每个数据包附加一个 IP首部信息,主要是目的主机地址。
101010101001
101010011010
011010210101
010101011010
111101010111
011101110110
110000101110
110101010101
001110101001
010111101000
101010101
001101010
011010011
101010101
001101010
011010011
101010101
001101010
011010011
TCP/IP是如何工作的?
2)路由器接收到这些包,并为每个包选择一个到达目的地的最佳路径。
经过一系列路由器的传输后,数据包到达它的目的端。
3)在接收端,TCP检查每个接收包的首部信息,并将所有的数据包重组成原始数据流。如果发现坏包,TCP向发送端提出重发请求。
TCP/IP是如何工作的?
TCP:我只管分割拼装报文,传错了找我。怎么传不管!
IP:我只管设法传到,
出错别找我!
TCP / IP
1.3.2 TCP/IP分层模型协议分层的必要性
计算机网络通信系统的复杂性体现在:
1,硬件故障。 主机或路由器可能因硬件故障或操作系统崩溃而不能工作。网络传输链路可能偶尔出现断路或者完全失效的情况。协议软件必须能够检测出这些失效,如果可能,还应进行恢复工作。
2,网络拥塞。 即使所有的软硬件都工作正常,网络的承载能力也是有限的。协议软件必须采取一定的策略,使已经发生拥塞的机器能抑制通信量的增加。
3,分组时延与丢失。 有时分组的时延特别长,甚至丢失了分组。协议软件必须能适应分组的长时延以及丢失的情况。
4,数据损伤。 电磁干扰和硬件的故障会导致传输的差错,因而使所传数据内容出错。协议软件必须能检测这些差错并从差错中恢复过来。
5,数据重复及乱序。 提供多路由的网络可能会送出乱序的分组数据或重复的分组。协议软件必须能将分组重新排序并抛弃重复的分组。
协议分层的原则
不论采用何种具体的层次结构以及各层的功能是什么,分层协议软件的操作都基于同一基本原则,即目标机的第 n层所收到的数据就是源主机的第 n层所发出的数据。
分层原则解释了为什么分层思想是解决复杂协议实现问题的十分有效的方法。 它允许协议的设计者能在一段时间内把注意力集中到某一层上而不必考虑较低层的执行情况。
对协议分层的理解
1,每个协议属于协议体系的层次之一。
2,某一层的某个协议分布于具体的网络实体(包括端系统和分组交换机)之中,由网络实体实现。
3,对于第 n层上运行的协议数据单元( PDU),常表示为
n-PDU。一个 n-PDU的内容和格式以及这些 n-PDU在网络元素之间交换的方式,由第 n层协议定义。
4,各层的所有协议统称为协议族。
5,第 n-1层向第 n层提供服务。 为了实现两个层次之间的相互操作,层次间的接口必须精确定义。标准化组织精确的定义了相邻层次间的接口(例如,经这些层次传输的 PDU格式),但允许网络软件和硬件的研制者根据他们的意愿实现这些层次的内部。
6,协议层能够以软件、硬件或两者结合的方式实现。
每一层的功能或任务
1,差错控制,使两个对等网络元素中层次间的逻辑通信更可靠
2,流控制,避免用 PDU过载一个较慢的对等方
3,分段和重组,发端将大的数据块分割成小块,收端将小块重组
4,复用,允许一个较高层会话共享一个较低层连接
5,连接建立,提供对等方的握手
TCP/IP分层的工作原理局域网内两主机间通信分布在不同网络的两台主机间的通信
OSI与 TCP/IP模型
国际标准化组织 (ISO)制定了开放式系统互联 (OSI )参考模型,以促进计算机系统的开放互联。 OSI模型将通信会话需要的各个过程划分成 7个相对独立的功能层次,这些层次的组织是以在一个通信会话中事件发生的自然顺序为基础的。
与 OSI参考模型不同,TCP/IP
模型更侧重于互联设备间的数据传送,而不是严格的功能层次划分。
因此,OSI参考模型在解释互联网络通信机制上比较适合,
但 TCP/IP成为了互联网络协议的市场标准。
TCP/IP参考模型比 OSI模型更灵活。
应 用 层表 示 层会 话 层传 输 层网 络 层数据链路层物 理 层应 用 层
O S I 参考模型 T C P / I P 参考模型传 输 层互 联 层主机--
网络层应用层
负责处理特定的应用程序细节。用户调用应用程序,
通过 TCP/IP互联网来访问可用的服务。
每个应用程序选择适当的传输服务类型 (包括独立的报文序列和连续字节流两种类型 )来接收和发送数据。
应用程序把数据按照运输层的格式要求组织好之后向下层传输。
运输层
运输层的基本任务是提供应用程序之间的通信服务。这种通信又叫端到端通信。其具体功能如下:
1,提供可靠的传输服务,以确保数据到达无差错、无乱序。为了达到这个目的,运输层协议软件要进行协商,让接收方回送确认信息及让发送方重发丢失的分组。
2,运输协议软件把要传输的长数据流划分为较小的数据段,也就是分组,把每个分组连同目的地址交给下一层去发送。很多情况下,
机器中会有多个应用程序同时访问互联网,运输层要从若干应用程序那里接收数据并把它们送给下一层。为此,运输层还要对每一个分组附加信息,包括一些代码,标识该分组是由哪个应用程序发送的,要发送给哪个应用程序等,还包括一个校验和。接收到分组的机器使用校验和来检验数据是否出错,并通过目的代码确定将分组发给哪个对应的应用程序。
网际层
网际层用来处理机器之间的通信问题。具体功能如下:
1,接收运输层请求,传输某个具有目的地址信息的分组。该层把分组封装到 IP数据报中,填入数据报的首部,使用选路算法来确定是直接交付数据报,还是把它传递给路由器,然后把数据报交给适当的网络接口进行传输。
2,处理传入的数据报,检验其有效性,使用选路算法来决定应该对数据报进行本地处理还是应该转发。如果数据报的目的站就是本机,该层软件就会除去数据报的首部,再选择适当的运输层协议来处理这个分组。
3,网际层根据需要发出和接收 ICMP(互联网控制报文协议 )报文,
进行差错控制。
4,网际层还可以使用 IGMP协议 (互联网组管理协议 )来实现组播功能。
网络接口层
包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它负责接收 IP数据报并把数据报通过选定的网络发送出去。
例 1:局域网上运行 FTP的两台主机例 2:分布在两个网络上运行 FTP的两台主机
TCP/IP模型的分界线分界线 2 操作系统之外的软件操作系统之内的软件只用 IP地址分界线 1 用物理地址分界线 1,协议地址分界线,区分高层和底层寻址。高层寻址使用 IP 地址,底层寻址使用物理地址。
分界线 2,操作系统分界线,区分系统程序和应用程序。当协议软件集成到操作系统中后,提高了数据传输的效率。
应用层传输层
IP层网络接口层
1.3.3 TCP/IP协议族
TCP/IP 协议的体系结构
TCP/IP 协议栈定义了四个层次
数据链路
定义各种介质物理连接的特性
定义在不同介质上信息帧的格式
IP( Internet protocol) 层
转发和路由功能:根据分组的目的 IP 地址,将分组从源端转发到目的地。
路由器( router),TCP/IP 网络中专用的 IP 分组转发设备。
TCP/UDP (传输层)
TCP 提供面向连接的、可靠的传输服务
UDP 提供无连接的、不可靠的传输服务
应用层
Telnet,Http,FTP,e-Mail ……
IP
数据链路
TCP/UDP
应用
TCP/IP 体系
TCP/IP协议族中不同层次的协议
1.3.4 复用和分解复用(封装)
分解(分用)
1.3.5 深层的 TCP/IP协议和服务
1.4 端口号
为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收,
TCP/ UDP提供了协议端口来区分一台机器上运行的多个程序。
TCP/ UDP使用 IP地址标识网上主机,使用端口号来标识应用进程,即 TCP/ UDP用主机 IP地址和为应用进程分配的端口号来标识应用进程。端口号是 16位的无符号整数 。
网络通信中用一个三元组可以在全局惟一标志一个应用进程:
(协议,本地地址,本地端口号 )。这样一个三元组,叫做一个 半相关 (half-association),它指定连接的每半部分。
一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是说,不可能通信的一端用 TCP协议,而另一端用 UDP协议。因此一个完整的网间通信需要一个五元组来标识,(协议,本地地址,本地端口号,远地地址,远地端口号 )。
这样一个五元组,叫做一个 相关 (association),即两个协议相同的半相关才能组合成一个合适的相关,完全指定一个连接。
1.5 应用编程接口( API)
使用 T C P / I P协议的应用程序通常采用两种应用编程接口( A P I):
s o c k e t和 T L I(运输层接口,Transport Layer
Interface)。
本章小结
1,TCP/IP协议族分为四层:链路层、网络层、运输层和应用层。各层有不同的责任。
2,TCP/IP中,运输层和传输层的关键区别是:网络层提供点到点服务,运输层提供端到端服务。
3,构造互联网的基石是路由器,它们在 IP层把网络连在一起。
4,在互联网上,每个接口都用 IP地址来标识。由于用户习惯用主机名,域名系统提供了主机名和 IP
地址之间的动态映射。
5,端口号用来标识相互通信的应用程序。服务器使用知名端口号,客户使用临时端口号。