因特网的重要协议

文档属性

名称 因特网的重要协议
格式 rar
文件大小 360.0KB
资源类型 教案
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2009-09-10 17:17:00

图片预览

文档简介

(共57张PPT)
第7章 因特网的重要协议
本章重点
●因特网与TCP/IP ——因特网的协议
DNS
TCP、UDP
IP、ICMP
9.2 因特网与TCP/IP
TCP/IP是一个协议簇
包括:
应用层:FTP, HTTP, DNS等
传输层:TCP, UDP
网络层:IP, ARP, ICMP, RARP, 各种路由协议
因特网的协议栈
application
transport
network
link
physical
应用层
ftp, smtp, http
传输层
tcp, udp
网络层
ip, 路由协议
数据链路层
ppp, 以太网协议
物理层
域名服务DNS 教学片
DNS用于将主机名转换为IP地址。
采用名字来标记一台主机便于记忆。
DNS服务主要基于UDP来实现,端口号=53。
三个组成部分:域名空间、名字服务器、解析程序
域名空间:分布式的、层次型(分级)的树形结构,根没有名字,顶层域由组织域(如org、com、edu)和国家域(如cn)构成。在往下分还可分为若干层子域,如下页图。通常用点来分隔域的层次,如
www.

INT
CN
MIL
NET
COM
JP


IBM
intel
eng
www
jack
edu
net
xjtu
www
ftp
交大的Web服务器:WWW.XJTU.
DNS名字服务器:存放域树结构和主机信息的数据库。为减小查询流量负载,提高可靠性,DNS名字空间被划分成若干不交叉的区域(Zone),分别存放在该区域的DNS服务器中。
解析程序:从名字服务器中提取信息把主机域名翻译成IP地址。
解析过程为:首先从本地Hosts文件查找。没找到就向本地DNS名字服务器发出请求;若本地DNS服务器也找不到,它就把请求发给顶层域名字服务器,然后由顶层域名字服务器把请求传递给相应子域的名字服务器。最后由该名字服务器把域名对应的IP地址按相反的路径传递给发出请求的站点。
例如:
jack.eng.想要知道www.xjtu.的IP地址
jack.eng.
eng.
edu-
www.xjtu.
xjtu.
原始服务器
eng,ibm
服务器
edu服务器
xjtu, edu
服务器
cn服务器
不同应用对基础协议的要求
数据丢失(data loss)
电子邮件、FTP、WWW和Telnet不能容忍数据丢失
而多媒体类的应用往往可以经得起部分数据的丢失
带宽(bandwidth)
以IP电话为代表的多媒体交互式的应用对带宽是十分敏感的
而文件传输类的应用则对带宽的要求比较具有“弹性”
实时性(timing)
IP电话、视讯会议、“四国大战”的要求
网络基础协议中的关键问题
网络基础协议指包括传输层及以下的各层中的各种协议,问题在于:
某个网络基础协议的性质(或所提供的服务)是面向连接的还是无连接的?
虚电路与面向连接的关系,虚电路是面向连接的,但面向连接的就一定是虚电路?
如何理解在不可靠的协议上建立可靠的连接服务?
传输层最基本的功能
在不同主机中的应用进程之间建立“逻辑通信”
应用进程使用由传输层提供的逻辑通信功能,在进程间互发报文,而不必考虑具体的通信细节
传输层仅仅工作在端系统中, 与交换节点(路由器)没有关系
传输层最基本的功能(续)
传输层从应用层收到“报文”,将其装入4-PDU(如果报文太大,则需要分段),加上传输层的“段首部”后就送给网络层
传输层有多个传输协议备选。
如面向连接的TCP和无连接的UDP
每个协议都使用其为应用层协议提供不同的传输服务功能的集合
传输层协议的主要功能是提供所谓“多道处理”的功能
传输层与网络层的关系
传输层提供主机内进程间的“逻辑通信”;而网络层则提供网络中主机间的“逻辑通信”
二者之间的差别微妙而又重要
主机=单位的传达室
进程=单位中的职员
应用层报文=信的内容
网络层协议=邮局的投递服务
传输层协议=传达室的收发业务
传输层和多道作业处理
在TCP和UDP的段头有两个端口号
分别为源端口(source port-number)和宿端口(destination port-number)
当把这两个字段合为一体时,就可以确定信宿主机中唯一的某个特定进程。
所谓端口号是一个16比特的数字,其表达范围从0~65535。从0~1023的端口号被称为常用端口号(well-known number)并限制使用。这就意味着这些端口号仅限于最常用的一些网络应用,
如HTTP和FTP。HTTP用端口的是80,FTP是21和20。常用端口号的定义见RFC 1700。
传输层和多道作业处理(续)
由此可知,在主机(服务器)中运行的每一种网络应用程序都有一个端口号
但是为什么在传输层协议PDU的字段中会有两个端口号,源端口和宿端口?
这个问题的答案很简单,同一信源主机可能在同一个时刻在运行两个以上相同的应用程序进程(比如同时打开两个浏览器窗口),而一个应用程序的端口号则无法确定主机中相同类型应用程序进程中的某个具体的进程
端口号
TCP和UDP都用端口(socket)号把信息传到上层。
端口号指示了正在使用的上层协议。
F
T
P
S
M
T
P
T
F
T
P
D
N
S
T
e
l
n
e
t
S
N
M
P
21
23
25
53
69
161
TCP UDP
应用层
传输层
保留的端口号:
<255,公共应用
255-1023,公司
>1023,未规定
传输层和多道作业处理(续)
当用户启动一个Telnet会话时,Telnet服务的宿端口为23,而源端口则由操作系统生成一个未被使用的端口号x。每个发送到Telnet服务器的段都将宿端口设为23,而源端口则设为x。当段到达Telnet服务器时,在段中的宿端口和源端口使得服务器可以确定具体的应用进程。宿端口为23确定了这是Telnet服务,而源端口则确定了具体的应用进程。
当数据从服务器流向客户端时,这种情况则颠倒过来,这次源端口为23,宿端口为x(这个x与发送到服务器的源端口号相同)。当该段到达客户端时,段中的源端口和宿端口使客户端主机可以确定正确的应用程序进程并将数据递交给它
传输层和多道作业处理(续)
既然从客户端发送到服务器的源端口号是由各个网络上的主机随机选择的,如果两台主机所选择的源端口完全相同,那么服务器进程又如何区别?这个问题尤其是在一些大型Web网站上,好像是很容易发生的
其实这个问题实际上很容易解决,因为服务器进程在对段数据进行甄别时要参考数据报的IP地址。虽然源端口号可能重复,但加上IP地址后,冲突就不会发生
两类服务: 面向连接的和无连接的服务
目的:在主机系统之间传输数据。
TCP – 传输控制协议 [RFC 793]
用于因特网的面向连接的服务
传输前需建立连接
可靠的, 有序的 字节流传输
流量控制与拥塞控制
UDP – 用户数据报协议 [RFC 768]:
用于因特网的无连接的服务
不可靠的数据传输
无流量控制
无拥塞控制
使用TCP服务的应用:
HTTP (WWW)
FTP (file transfer)
Telnet (remote login)
SMTP (email)
使用UDP服务的应用:
流媒体, 电信会议, 因特网电话
DNS
TCP协议 RFCs: 793, 1122, 1323, 2018, 2581
点到点(端到端):
一个发送者, 一个接收者
面向连接:可靠的, 有序的字节流
无 “消息边界”
流量受控:管道化的
TCP拥塞和流量控制设置窗口大小
全双工操作
TCP段格式
源端口
0 3 4 9 10
代码位
目的端口
15 16
31
顺序号
确认号
窗口大小
保留
报头长度
校验和
紧急指针
选项(可省略)
数据
源端口(Source Port):呼叫端口的编号
目的端口(Destination Port):被叫端口的编号
顺序号(Sequence Number):数据的第一个字节的顺序号
确认号(Acknowledgment Number):所期待的下一段的顺序号
报头长度(HLEN):以32字节为单位的报头的长度
保留域(Reserved):设置为0
编码位(Code Bits):用于控制段的传输(如会话的建立和中止)
包括:URG、ACK、PSH、RST、SYN、FIN六个位
窗口大小(Window):接收方能够继续接收的字节数
校验和(Checksum):包括TCP报头和数据在内的校验和
紧急指针(Urgent Pointer):当前顺序号到紧急数据位置的偏移量
选项(Option):
数据(Data):上层协议数据
TCP连接的建立——三次握手
例如:A、B两个主机要建立连接
A→B
方向
消息
含义
A←B
A←B
A→B
SYN
SYN
ACK
ACK
我的序号是X
序号用于跟踪通信顺序,确保多个包传输时无数据丢失。
通信双方在建立连接时必须互相交换各自的初始序号。
知道了,你的序号是X
我的序号是Y
知道了,你的序号是Y
握手
1
2
3
合并
1.
2.
3.
4.
TCP通过三次握手来建立连接
A
B
发送SYN消息(SEQ=x)
收到SYN消息(SEQ=x)
发送SYN消息
(SEQ=y,ACK=x+1)
收到SYN消息
(SEQ=y,ACK=x+1)
发送确认(ACK=y+1)
收到确认(ACK=y+1)双方连接建立
红蓝军的故事
A
B
发送FIN消息(SEQ=x)
接收FIN消息(SEQ=x)
TCP发送确认(ACK=x+1)①
接收ACK消息(ACK=x+1)
A→B的连接断开(半关闭)
但A仍可接收数据
发送确认(ACK=y+1)
接收确认(ACK=y+1)
B→A的连接断开
TCP通过四次握手来释放连接
应用进程释放连接
通知应用进程①
应用进程释放连接②
发送FIN消息② (SEQ=y,ACK=x+1)
接收FIN消息(SEQ=y)
TCP的面向连接的实质
TCP 是面向连接的协议
TCP的面向连接是建立在相互连接的主机内,而与中间的转接节点(路由器)没有关系
TCP的面向连接与所谓的“虚电路”没有关系
TCP所提供的可靠服务是建立在IP所提供的“不可靠的服务”的基础上的
UDP段格式
UDP不用确认,功能十分简单。
传输可靠性由应用层协议保证。
使用UDP的协议包括:TFTP、SNMP、NFS、DNS等
源端口
目的端口
长度
校验和
数据
16b
16b
16b
16b
网络层与IP协议
互联网层功能:
路由表
路由协议
路由选择
RIP, OSPF, BGP
IP 协议
地址转换
数据报格式
分组处理
ICMP 协议
错误报告
路由器 “信令”
传输层: TCP, UDP
数据链路层
物理层
网络层
IP数据报(IP分组、IP包)
版本号
报头长度
服务类型
数据报长度
DF
MF
段偏移
0 3 7 15 19 31
标识
生存时间TTL
协议
报头校验和
源IP地址
目的IP地址
选项和填充(最大为40字节)
数据区
IP地址
IP网络中每台主机都必须有一个惟一的IP地址;
IP地址是一个逻辑地址;(与MAC地址比较一下)
因特网上的IP地址具有全球唯一性;
32位,4个字节,常用点分的十进制标记法:
如 00001010 00000010 00000000 00000001 记为 10.2.0.1
IP地址划分为五类:A-E类,常用的为A、B、C类
A类地址:允许27-2个网络,每个网络224-2个主机;
B类地址:允许214个网络,每个网络216-2个主机;
C类地址:允许221个网络,每个网络28-2个主机;
IP地址分类
A类
B类
C类
0
0
0
1
1
1
7bits
24 bits
14 bits
16 bits
网络号
主机(接口)号
网络号
主机(接口)号
21bits
8bits
网络号
主机(接口)号
A类 0.0.0.0 ~ 126.255.255.255
B类 128.0.0.0 ~ 191.255.255.255
C类 192.0.0.0 ~ 223.255.255.255
地址范围
保留的IP地址
00...00
0000 ... 0000
11...11
1111 ... 1111
本机
本网中的主机
局域网中的广播
对指定网络的广播
回路
00...00
主 机 号
1111 ... 1111
网络号
127
任 意 值
以下这些IP地址具有特殊的含义:
一般来说,主机号部分为全“1 ”的IP地址保留用作广播地址;
主机号部分为全“0 ”的IP地址保留用作网络地址。
0000 ... 0000
网络号
网络地址
子网掩码计算
缺省子网掩码:A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255.0
网际控制报文协议(ICMP)
ICMP消息被封装在IP数据报里,用来发送差错报告和控制信息。
ICMP定义了如下消息类型:
目的端无法到达(Destination unreachable)
数据报超时(Time exceeded)
数据报参数错(Parameter problem)
重定向(Redirect)
回声请求(Echo)
回声应答(Echo reply)
信息请求(Information request)
信息应答(Information reply)
地址请求(Address request)
地址应答(Address reply)
……
最常用的是“目的无法到达”和“回声”消息。
A
B
数据网
发数据给Z
到Z的数据
我不知道如何
到达Z?
用ICMP通知A
目的端无法到达
路由器用ICMP通知目的地不可达的示意图
A
B
B可以到
达吗?
ICMP回声请求
可以,
我在这里。
ICMP回声应答
用PING命令产生的回声及其应答示意图
地址解析协议(ARP, Address Resolution Protocol)
ARP用于将一个已知的IP地址映射到MAC地址。方法:
1)检查ARP高速缓存表;
2)若地址不包含在表中,就向网上发广播来寻找。具有该IP地址的目的站用其MAC地址作为响应。
ARP只能用于具有广播能力的网络。
A
C
我需要10.1.0.5
的MAC地址
IP = 10.1.0.5
MAC =
我就是。
这是我的MAC地址
IP = 10.1.0.5
MAC = 0800.0020.2C0A
B
10.1.0.1
10.1.0.5
10.1.0.2
为什么需要地址解析协议?
在因特网中,IP地址是所有数据分组传输的逻辑地址
在局域网中,一般使用物理(MAC)地址进行数据通信
许多因特网的主机位于局域网络中,当数据分组到达时,需要把IP地址转换成MAC地址,把网络层的分组再封装在局域网链路帧中,才能发送到该主机
域名服务(DNS)和地址解析(ARP)的比较
DNS是一种广域网中全局性的服务,由分布在全球的DNS服务器形成一个服务链,提供关于广域网中的域名到IP地址间的映射。
ARP是在局域网中区域性的服务,其服务程序驻留在局域网中的主机(接口)中,由各个主机负责解析IP到MAC地址间的映射。
Routing to another LAN
walkthrough: routing from A to B via R
In routing table at source Host, find router 111.111.111.110
In ARP table at source, find MAC address E6-E9-00-17-BB-4B, etc
A
R
B
ARP与IP的交互
在LAN1中,所有的主机都有111.111.111.xxx的地址形式,而LAN2则所有主机具有222.222.222.xxx的地址形式。
现在假设主机111.111.111.111要发送一个数据报到主机222.222.222.222。发送主机一如既往将数据报发送到了接口上,但发送主机需要指出相应的信宿的LAN地址。那么发送主机会使用哪个LAN地址。
可能猜测是是222.222.222.222的LAN地址,49-BD-D2-C7-56-2A。可惜,这个答案是错误的。如果发送适配器使用这个LAN地址,LAN1上没有一个适配器会将该数据报传送到网络层,由于数据帧中的地址将在LAN1中找不到匹配的适配器地址,该数据报将无疾而终并送到数据报天堂。
从IP子网掩码的作用可知,发送主机在发送数据报之前,就已经知道信宿主机不在同一LAN上,(将信宿主机和发送主机的IP地址的的网络地址部分进行比较),其结果只能将数据报发送给路由器,由路由器转发,而路由器的IP地址(在Windows系统中称为缺省网关)在发送主机中早有预置(在本例中为111.111.111.110)。
发送主机如何得到路由器接口的LAN地址呢? 当然是使用ARP程序模块。一旦发送端的适配器获得了路由器接口的LAN地址,就可以生成一个数据帧,发送给路由器。
LAN1上的路由器接口见到了发给它的数据帧,就将其传送到网络层。就这样,数据报就成功地从主机发送到了路由器上!
还必须将数据报从路由器发送到目的地。路由器首先需要选择适当的接口来转发,这项工作路由器可以通过查询路由表来完成。路由表告诉路由器,数据报可以通过路由器的222.222.222.220接口转发。该接口将数据报传送到其适配器,组成新的数据帧,并送入LAN2
这次,数据帧的信宿地址才是真正的最终目的地的LAN地址。
路由器又是如何知道最终目的地的LAN地址呢?因为,路由器可以识别数据报中的目的地的IP地址,所以,它可以通过ARP来获得最终目的地的LAN地址。
路由选择
路由表的维护有两种基本方式:
静态路由——由人工预先设置好,只适用于
小型网络
动态路由——路由器运行过程中根据网络情
况自动地动态维护
路由表——存放到达其他网络的路由信息,
路由器根据路由表转发分组。
路由表的基本内容
网 络
路由(下一站点)
距 离
172.16.0.0
202.168.0.0
10.0.0.0
202.168.0.2
202.168.0.0
直接
172.16.0.0
10.0.0.0
A
B
A的路由表
直接
.1
.1
.2
.1
0
0
1
ICMP工具程序
PING
PING工具程序可用来发
出ICMP Echo Request包,
以初步排查网络联网异常。
A
B
Echo Request
Echo Reply
利用PING来诊断网络问题
Ping 127.0.0.1——用于测试TCP/IP协议是否运行正常
Ping 本机地址——测试网络设置(网卡)是否正常
Ping 对外连接的路由器(网关)——测试内部网络与对外连网的路由器是否正常
Ping Internet上计算机的IP地址——随便找一台Internet上的计算机,如果有响应,代表IP设置全部正常。
Ping Internet上计算机的网址——例如ping ,如果有响应,代表DNS设置无误。
TRACERT
TRACERT工具可找出至目
的IP地址所经过的路有器。
TRACERT的工作原理:
A发出Echo Request 1,目的地址为B,TTL=1;
R1路由器收到Echo Request 1后,因TTL=1便丢弃此封包,然后传送Timer Exceeded 1给A;
A收到Timer Exceeded 1之后,便可知道RI位路由过程中的第一个路由器。接着,A再发出Echo Request 2,目的地址仍为B,TTL=2;
A
B
R1
R2
Echo Request 2先送到R1,然后转送至R2,到达R2时, Echo Request 2的TTl=1,因此R2便丢弃此封包,然后传送Timer Exceeded 2给A;
A收到Timer Exceeded 2之后,便可知道RI位路由过程中的第二个路由器。接着,A再发出Echo Request 3,目的地址仍为B,TTL=3;
Echo Request 3经R1、R2,然后转送至B,B收到此封包后回应Echo Reply 1给A。A收到Echo Reply 1之后便大功告成。
PATHPING
PATHPING可以认为是PING和TRACERT的结合,先找出至目的地IP地址所经过的路有器,然后依次对每部路
由器发出Echo Request包,以监测路由器是否正常。
本章小结
因特网与TCP/IP ——因特网的协议
DNS
TCP、UDP
IP、ICMP
ARP与IP的交互
同课章节目录