201
TCP/IP 协协协协协 协协协

TCP/IP 协议及应用

  • Upload
    grazia

  • View
    340

  • Download
    0

Embed Size (px)

DESCRIPTION

TCP/IP 协议及应用. 第七章. 主要内容. 协议栈 IP 地址 TCP/IP 协议 IPv6. 1 、 TCP/IP 协议栈. Application. 7. Presentation. 6. Session. 5. Transport. 4. Network. 3. Data link. 2. Physical. 1. 2 、 IP 地址. IPv4. 2.1 IPv4. 2.1 IPv4 逻辑地址分类. 2.1 IPv4 地址范围. 2.1 IPv4- 特殊地址. 网络地址. 2.1 IPv4- 特殊地址. - PowerPoint PPT Presentation

Citation preview

Page 1: TCP/IP 协议及应用

TCP/IP 协议及应用

第七章

Page 2: TCP/IP 协议及应用

主要内容1. 协议栈2. IP 地址3. TCP/IP 协议4. IPv6

Page 3: TCP/IP 协议及应用

1 、 TCP/IP 协议栈ApplicationApplication

PresentationPresentation

SessionSession

TransportTransport

NetworkNetwork

Data linkData link

PhysicalPhysical1

2

3

4

5

6

7

Page 4: TCP/IP 协议及应用

2 、 IP 地址 IPv4

Page 5: TCP/IP 协议及应用

2.1 IPv4

Page 6: TCP/IP 协议及应用

2.1 IPv4 逻辑地址分类

Page 7: TCP/IP 协议及应用

2.1 IPv4 地址范围

Page 8: TCP/IP 协议及应用

2.1 IPv4- 特殊地址网络地址

Page 9: TCP/IP 协议及应用

2.1 IPv4- 特殊地址指定网络广播地址(路由器可转发)

Page 10: TCP/IP 协议及应用

2.1 IPv4- 特殊地址受限广播地址(路由器不转发)

Page 11: TCP/IP 协议及应用

2.1 IPv4- 特殊地址回环地址

Page 12: TCP/IP 协议及应用

2.1 IPv4- 特殊地址公共地址

IETF 分别从 A 、 B 、 C 三类地址中取出一段地址范围保留用作内部网络地址,他们分别是:10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255这些地址范围是专门用来标识内部网络的,不能用来访问 Internet ,因为 Internet 上路由器不会转发目标地址在上述三个范围内的数据包。

Page 13: TCP/IP 协议及应用

公共地址与 Internet 的互连

NAT

专用网

本地主机x1.x2.x3.x4

源地址 a3.b3.c3.d3a1.b1.c1.d1a2.b2.c2.d2

…an.bn.cn.dn

公共 IP 地址库

源地址 x1.x2.x3.x4

源地址 x1.x2.x3.x4

Internet

2.1 IPv4- 特殊地址

Page 14: TCP/IP 协议及应用

2.1 IPv4- 特殊地址物理地址( 48bits )Ipconfig /allRoute Print

Page 15: TCP/IP 协议及应用

特殊地址小结 特殊地址

网络地址,不可以用作主机地址 广播地址,不可以用作主机地址 回环地址 公共地址 内部地址

Page 16: TCP/IP 协议及应用

一个主机发送一个分组时如何发现目的地在那里? 网络掩码

Page 17: TCP/IP 协议及应用

2.2 IPv4 Network Mask

Def. 网络掩码:用于标志网络地址和主机地址的代码。

不同类型的网络( A 、 B 、 C )具有不同的网络掩码

255.0.0.0 255.255.0.0 255.255.255.0 网络地址的获取:逻辑“与”

Page 18: TCP/IP 协议及应用

2.2 Sub-Network Mask 划分网络号和主机边界 对子网进行精确的划分,减小子网络空间

子网掩码就是将 Hostid 的一部分作为网络 Netid 的延伸 掩码地址的格式:前 N 位 1+ 后 M 位 0=32 掩码地址“与” IP 地址 = 对应子网的“实

际网络地址”

Page 19: TCP/IP 协议及应用

路由特点 子网划分对外部的路由器是透明的 对子网内部的路由器是不透明的

2.2 Sub-Network Mask

Page 20: TCP/IP 协议及应用

子网掩码举例

路由器路由器

202.183.56.1xxxxxxx

202.183.56.0xxxxxxx

路由器路由器

202.183.56.xxxxxxxxx

Page 21: TCP/IP 协议及应用

子网掩码举例 学校将 202.183.56.0 ( C类地址)分配给两个系,每个系约有 120 台计算机。

掩码地址可定义为: 255.255.255.128 系 1地址范围: 202.183.56.1—202.183.56.126 子网地址: 11001010 10110111 00111000

0xxxxxxx 系 2地址范围: 202.183.56.129—202.183.56.254

子网地址: 11001010 10110111 00111000 1xxxxxxx

Page 22: TCP/IP 协议及应用

思考题: 已知网络地址 202.112.11.0 今有 A 、 B 、 C 三个机构需要的 ip 地址

分别为 120 、 60 和 62 个,如何划分子网,子网掩码、地址和 ip 地址范围是多少?

Page 23: TCP/IP 协议及应用

3 TCP/IP 协议 网络层协议 : ICMP IGMP ARP RARP 传输层协议 : UDP TCP 应用层协议 : SMTP/POP HTTP DNS FTP

Page 24: TCP/IP 协议及应用

不同层次的协议

Page 25: TCP/IP 协议及应用

数据帧的分用过程

Page 26: TCP/IP 协议及应用

3.1 网络层协议 网络层协议格式头格式 ARP/RARP ICMP IGMP

Page 27: TCP/IP 协议及应用

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

Version (4 bits): tells that this is IP Version 4 (IPv4)

IPv4 header structureIPv4 header structure

Page 28: TCP/IP 协议及应用

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

Header length (4 bits) is needed since Options + Padding can vary in length.

Options : Security (packet classification), Strict source routing (the whole routing list), Loose source routing (the mandatory routing list), Record route (record the IP address of each hop), Timestamp (record the IP address and timestamp of each hop).

Page 29: TCP/IP 协议及应用

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

ToS = Type of Service (8 bits) is used for QoS management purposes.

The first 3 bits of TOS indicate priorities, 0 being low (normal packet) and 7 being high (network control packet); the next 3 bits indicate service types, being delay, throughput, and reliability; the last 2 bits are reserved. Source could use service type bits to indicate the routing metrics to be used.

Page 30: TCP/IP 协议及应用

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

Datagram length (16 bits): since this field is 16 bits long, the IP datagram can contain up to 216 = 65535 bytes (in theory).

Most routers, however, cannot handle such large datagrams.

Page 31: TCP/IP 协议及应用

SEU 31

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

IP fragmentation: a large IP datagram may be fragmented (in any router along the path) and will be reassembled at the destination.

Flags: 1st bit – reserved; 2nd bit – DF, 0 = fragment yes, 1 = fragment no; 3rd bit – MF, 0 = last fragment, 1 = more fragment.

All fragments contain the same

number

Has value zero in last

fragment

Position of fragment in

original datagram

Page 32: TCP/IP 协议及应用

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

Time-to-live (8 bits): this number is decreased by one in each router along the path. If number zero is reached in a router, IP datagram is discarded and router sends an ICMP message (TTL expired) to the source of the datagram.

Page 33: TCP/IP 协议及应用

SEU 33

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

Protocol field (8 bits): describes which higher layer protocol is used (TCP, UDP, SCTP ...). The header of this upper protocol is located at the beginning of the IP datagram payload.

e.g. 6 = TCP, 17 = UDP, 1 = ICMP, 89 = OSPF, etc.

Starts here ...

Page 34: TCP/IP 协议及应用

SEU 34

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

Header checksum (16 bits): used for error control (if used, routers along the path have to recalculate the checksum).

This kind of error control is not used in IPv6 (since the same error control function is offered by TCP - and even UDP).

Page 35: TCP/IP 协议及应用

SEU 35

IPv4 header structureIPv4 header structure

VersionVersion IHLIHL Type of ServiceType of Service Total length of IP datagramTotal length of IP datagram

IdentificationIdentification FlagsFlags Fragment offsetFragment offset

Time-to-liveTime-to-live ProtocolProtocol Header checksum (for error control)Header checksum (for error control)

Source IP address Source IP address

Destination IP addressDestination IP address

OptionsOptions PaddingPadding

Payload of IP datagramPayload of IP datagram

Source and destination IP address (32 bits each): note that these addresses are not changed in routers along the route.

Page 36: TCP/IP 协议及应用

通过捕获的分组查看 IP 头格式

Page 37: TCP/IP 协议及应用

地址解析协议 (ARP/RARP)

Page 38: TCP/IP 协议及应用

ARP/RARP

Page 39: TCP/IP 协议及应用

ARP 帧格式

Page 40: TCP/IP 协议及应用

ARP 分组格式以太网为 1 IP0800

硬件地址长度

协议地址长度

Page 41: TCP/IP 协议及应用

ARP

Page 42: TCP/IP 协议及应用

example

broadcast

unicast

Page 43: TCP/IP 协议及应用

使用 ARP 协议的四种情况

Page 44: TCP/IP 协议及应用
Page 45: TCP/IP 协议及应用
Page 46: TCP/IP 协议及应用
Page 47: TCP/IP 协议及应用

ARP 缓存 -cache Arp –a –g –s –d 主机内设置缓冲区,是为了快速查找通过主机演示

Arp -a Arp –d Arp –s

Page 48: TCP/IP 协议及应用

C:\Documents and Settings\Administrator>PING 172.18.12.199

Pinging 172.18.12.199 with 32 bytes of data:

Reply from 172.18.12.199: bytes=32 time<1ms TTL=128Reply from 172.18.12.199: bytes=32 time<1ms TTL=128Reply from 172.18.12.199: bytes=32 time<1ms TTL=128Reply from 172.18.12.199: bytes=32 time<1ms TTL=128

Ping statistics for 172.18.12.199: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Documents and Settings\Administrator>ARP -D

C:\Documents and Settings\Administrator>ARP -ANo ARP Entries Found

C:\Documents and Settings\Administrator>ARP -S 172.18.12.199 00-88-88-88-88-88

C:\Documents and Settings\Administrator>APR -A'APR' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

Page 49: TCP/IP 协议及应用

C:\Documents and Settings\Administrator>ARP -A

Interface: 172.18.12.192 --- 0x10005 Internet Address Physical Address Type 172.18.12.199 00-88-88-88-88-88 static

C:\Documents and Settings\Administrator>PING 172.18.12.199

Pinging 172.18.12.199 with 32 bytes of data:

Request timed out. Request timed out. Request timed out. Request timed out.

Ping statistics for 172.18.12.199: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\Documents and Settings\Administrator>ARP -D

C:\Documents and Settings\Administrator>ARP -A No ARP Entries Found

Page 50: TCP/IP 协议及应用

C:\Documents and Settings\Administrator>PING 172.18.12.199

Pinging 172.18.12.199 with 32 bytes of data:

Reply from 172.18.12.199: bytes=32 time<1ms TTL=128Reply from 172.18.12.199: bytes=32 time<1ms TTL=128Reply from 172.18.12.199: bytes=32 time<1ms TTL=128Reply from 172.18.12.199: bytes=32 time<1ms TTL=128

Ping statistics for 172.18.12.199: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Documents and Settings\Administrator>

Page 51: TCP/IP 协议及应用

通过 sniffer 工具察看保存结果

Page 52: TCP/IP 协议及应用

Arp 欺骗A: ip 地址 192.168.0.1 硬件地址 A

A:AA:AA:AA:AA:AAB: ip 地址 192.168.0.2 硬件地址 B

B:BB:BB:BB:BB:BBC: ip 地址 192.168.0.3 硬件地址 C

C:CC:CC:CC:CC:CC

Page 53: TCP/IP 协议及应用

Arp 欺骗的实施

1. 研究 192.0.0.3 这台主机,发现这台主机的漏洞。根据发现的漏洞使主机 A 当掉,暂时停止工作。

2. 这段时间里,入侵者把自己的 ip 改成 192.0.0.3 3. 发一个源 ip 地址为 192.168.0.3,源MAC 地址为 B

B:BB:BB:BB:BB:BB 的包给主机 C ,要求主机 C更新自己的 arp 转换表。

4. 主机更新了 arp表中关于主机 A 的 ip-->mac 对应关系。防火墙失效了,入侵的 ip变成合法的 mac地址,可以 telnet 了。

Page 54: TCP/IP 协议及应用

ARP 欺骗的防范 不要把网络安全信任关系建立在 ip

地址的基础上或硬件 mac 地址基础上,理想的关系应该建立在 ip+mac基础上。

设置静态的 mac-->ip 对应表,不要让主机刷新设定好的转换表。

Page 55: TCP/IP 协议及应用

ARP Proxy

Page 56: TCP/IP 协议及应用

RARP

Page 57: TCP/IP 协议及应用

RARP

Page 58: TCP/IP 协议及应用

RARP

Page 59: TCP/IP 协议及应用

思考题: 1 、如何利用 ARP 协议实现一个 LAN 内

的 IP 地址使用情况监控? 2 、 ARP攻击的基本原理 ?

Page 60: TCP/IP 协议及应用

3.1.2 ICMP

用于网络设备和结点之间的控制和差错报文的传输(主机之间,而不是应用之间) Error message— 一些网络错误信息 Ping—测试工具 Traceroute—路由跟踪windows tracert

封装于 IP 数据包内部

Page 61: TCP/IP 协议及应用

ICMP

Page 62: TCP/IP 协议及应用

ICMP报文分类覆盖整个 ICMP报文

共有 15 种类型

Page 63: TCP/IP 协议及应用

ICMP报文分类

Page 64: TCP/IP 协议及应用

ICMP报文分类

Page 65: TCP/IP 协议及应用

ICMP 差错报文

Page 66: TCP/IP 协议及应用

ICMP 差错报文封装形式

ICMP 差错报文包含原 ip 数据报的头部和前 8 个数据字节,目的是使接受该 ICMP 报文的主机识别上层协议与应用进程

Page 67: TCP/IP 协议及应用

ICMP 差错报文 目的不可达

网 1 网 2 网 3 网 4

主机 A 主机 B R1 R2 R3

ICMP报文返回

Page 68: TCP/IP 协议及应用

ICMP 差错报文 重定向-分组中含有路由信息,路由优化

A 要发送分组到 B ,通过默认路由到 R1 , R1转发时发现下一跳是 R2 ,并且 A 、 R1 、 R2直接互联。

Page 69: TCP/IP 协议及应用

ICMP 差错报文重定向

重定向报文只能由路由器产生重定向报文是用于主机而不是路由器

Page 70: TCP/IP 协议及应用

ICMP 查询报文

Page 71: TCP/IP 协议及应用

ICMP 查询报文 时间戳请求报文 ID 和 SN 由发

送端任意确定

Page 72: TCP/IP 协议及应用

ICMP 查询报文请求回显- ping

Page 73: TCP/IP 协议及应用

TRACEROUTE ( LINUX) TRACERT (WINDOWS )的基本原理是什么(思考题)

通过 sniffer展示

Page 74: TCP/IP 协议及应用

3.1.3 IGMP

Multicast Internet Group Management

Protocol RFC1112

Page 75: TCP/IP 协议及应用

IGMP 报文格式

Ip 首 部 IGMP报文

版本(4bit)

类型(4bit) 未用 检验和

32bit组地址(D类IP地址)

0 34 78 1516

IGMP 报文格式

Page 76: TCP/IP 协议及应用

报文类型 类型 1 :多播路由器查询报文,组地址为 0 类型 2 :主机组播报告报文,组地址为该主

机加入的组播组。

Page 77: TCP/IP 协议及应用

多播地址 通用多播地址: 224.0.0.0

永久多播组224.0.0.1 子网内所有系统组224.0.0.2 子网内所有路由器224.0.1.1 NTP 网络时间协议组……….

1 1 1 0 多播组ID

Page 78: TCP/IP 协议及应用

多播地址转换 多播组地址到以太网物理地址转换 以太网物理多播地址: 01.00.5e.00.00.00~0

1.00.5e.7f.ff.ff 转换

1 1 1 0 多播组ID

0 313 4

0 4701 00 5e

23024

23

8

5 位没有进行映射

每个物理多播地址对应 32个组播地址

以太网多播标志

Page 79: TCP/IP 协议及应用

应用层组播 应用层组播,就是在应用层实现组播功

能而不需要网络层的支持。 这样就可以避免出现由于网络层迟迟不

能部署对组播的支持而使组播应用难以进行的情况。

Page 80: TCP/IP 协议及应用

3.2 传输层协议 传输层的位置和特点 TCP UDP

Page 81: TCP/IP 协议及应用

3.2 传输层协议

Page 82: TCP/IP 协议及应用

3.2.1 TCP 协议概述

Page 83: TCP/IP 协议及应用

TCP 协议概述 面向连接

连接定义:四元组(客户 I P 地址、客户端口号、服务器 I P 地

址和服务器端口号); 应用程序利用 TCP 协议进行数据传输之前,首先建立基于 TCP 的四元组连接;

进行数据传输之前进行“握手”,双工通信。

Page 84: TCP/IP 协议及应用

Tcp 协议概述 可靠传输服务

TCP 协议利用网络层的 IP 协议进行数据传输,而 IP 协议是一种不可靠协议。(丢包,失序),如何获得可靠性?

数据分割使之适于网络传输 定时重传机制 校验和 重复丢弃和失序纠正 流量控制

Page 85: TCP/IP 协议及应用

Tcp 协议概述 面向字节流的传送服务

TCP 协议将应用程序需要传输的数据理解为按顺序排列的二进制位,并按八位字节为基本单位,形成有序的八位字节流。发送方将数据以字节流的顺序递交给下层的 TCP协议进行传输, TCP 协议在组织传输时并不关心数据的结构,接收方的 TCP 协议将数据以相同的字节流顺序交给接收方的程序。

Page 86: TCP/IP 协议及应用

TCP Connect and discon

Page 87: TCP/IP 协议及应用

TCP Connect and disconConnect :( socket) 1) 请求端(通常称为客户)发送一个 syn 段

指明客户打算连接的服务器的端口,以及初始序号;

2) 服务器发回包含服务器的初始序号的 syn报文段作为应答。同时,将确认序号设置为客户的 ISN+1;

3) 客户将确认序号设置为服务器的 ISN+1 。

Page 88: TCP/IP 协议及应用

TCP Connect and discon关闭连接

Page 89: TCP/IP 协议及应用

TCP Connect and discon关闭连接1 、建立一个连接需要三次握手,而终止一个连接要经过 4 次握手;

2 、 T C P 连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭;

3 、收到一个 F I N只意味着在这一方向上没有数据流动,一个 T C P 连接在收到一个 F I N后仍能发送数据。

Page 90: TCP/IP 协议及应用

TCP Connect and discon

半关闭

Page 91: TCP/IP 协议及应用

TCP Connect and disconTCP 状态图

Page 92: TCP/IP 协议及应用

TCP超时与重传 通信端收到对方分组后发送确认信息 ACK

发送端等待 ACK 发送后启动定时器,超时重传

How to Get RTT

Page 93: TCP/IP 协议及应用

TCP最大Max-Send-Segment MSS=Min ( MTU , SMSS , RMSS )

通过 Sniffer展示

Page 94: TCP/IP 协议及应用

3.2.2 UDP

Page 95: TCP/IP 协议及应用

TCP/UDP 协议对比 首先, TCP 是一种面向连接的协议,而 UDP

是无连接的协议。这其中的区别在于:第一,TCP 协议是以连接作为协议数据的最终目标的。UDP 协议则是以目标端口作为协议数据的最终目标。因此, TCP 的协议端口是可以复用的,UDP 协议的端口在同一时间则只能为一个应用程序所用。第二,一个连接是由两个端点构成的,并为该连接分配一定的资源(缓冲区)。UDP 协议则不需要这个过程,可以直接发送和接收数据。

Page 96: TCP/IP 协议及应用

TCP/UDP 协议对比 其次, TCP提供的是可靠的传输服务,而 UD

P 协议提供的是不可靠的服务。使用不可靠的服务进行数据传输时,数据可能会丢失,失序,重复等。而可靠的服务能保证发送方发送的数据能原样到达接收方。

最后, TCP提供的是面向字节流的服务。应用程序只需将要传输的数据以字节流的形式提交给 TCP 协议,在连接的另一端,数据以同样的字节流顺序出现在接收程序中。而 UDP 协议的传输单位是数据块,一个数据块只能封装在一个 UDP 数据包中。

Page 97: TCP/IP 协议及应用

TCP/UDP 应用对比 可靠应用需要 TCP 协议 TCP 协议的连接建立需要一定时间,不适于实时性要求的应用

而用 UDP 协议具有一定丢失不敏感的应用使用 UDP 协议

Page 98: TCP/IP 协议及应用

思考题: UDP 协议是不可靠协议,通常在时实性较强的应用中使用,为什么?若发送的重要命令或数据丢失如何解决?

Page 99: TCP/IP 协议及应用

3.3 应用层协议 电子邮件原理与协议 http DNS FTP

Page 100: TCP/IP 协议及应用

3.3.1 Mail

Page 101: TCP/IP 协议及应用

3.3.1 Mail Protocol

SMTP : Postel J B.Simple Mail Transfer Protocol. RFC821[EB/OL].http://www.ietf.org/ rfc/ rfc0821.txt

POP : Myers J. Post Office Protocol - Version 3.RFC1939[EB/OL].http://www.ietf.org/rfc/rfcl939.txt

Page 102: TCP/IP 协议及应用

3.3.1 Mail Theory

Foxmail Outlook

SENDMAIL

QMAIL

SMTP

POP

Page 103: TCP/IP 协议及应用

3.3.1 Mail Format rfc822

Rfc 822定义电子邮件文本 ( textual) 信息交换标准格式、详细的信息头格式和单一信息体 (BODY) 格式 , 它针对的是基于 A SC II 字符集的纯文本格式 , 它的不足之处主要表现在 :1 、对于图形图像、语音、结构化文本等多媒体信息并没有提供相应的表示机制 .

2 、与基于 X. 400 的主机之间无法进行完整的信息交换 .

3 、不支持同一邮件信息内的多个信息体格式 .

Page 104: TCP/IP 协议及应用

3.3.1 Mail Format-MIME

RFC1341 (RFC2231 、 RFC2646 等 ) MIME ( Multipurpose Internet Mail Extensions )在几个方面进行了扩展 . 它主要包含如下功能 :

1 、 M IM E 版本的头域 (F ield) , 用以指明该邮件信息头符合本协议 .

2 、内容类型头域 , 用于指明信息体的类型及子类型 .3 、内容传输编码头 , 用来指明信息编码 , 主要分为五种编码 :8bit 、 7bit 、 binary 、 quoted printable 和 base64

Page 105: TCP/IP 协议及应用

3.3.1 MIME-多用途邮件格式

Page 106: TCP/IP 协议及应用

3.3.1 MIME- base64 编码 目的

将其它格式的文档转换为 7位的数据流; 用于对图像、声音和执行文件等。

方法 将文件看作二进制流,每 6位形成一组,作

为索引号码选择对应的可传输字符; 对应的 64 个字符为 (A-Z,a-z,0-9,+,-) ,其对

应的编号为 0-63 。

Page 107: TCP/IP 协议及应用

3.3.1 MIME- base64 编码

Page 108: TCP/IP 协议及应用

3.3.1 MIME- Quoted-printable 目的

将非 ASCII表示转换为 ASCII表示 方法

将非 ASCII表示的数值用两个十六进制数表示,如 89H表示为 ASCII 的编码 38H 和 39H两个十六进制数,然后前面加上“ =” 的ASCII编码。

Page 109: TCP/IP 协议及应用

3.3.1 MIME- Quoted-printable

Page 110: TCP/IP 协议及应用

3.3.1 Mail Format

邮件地址

Page 111: TCP/IP 协议及应用

3.3.1 Mail Format传统信件与 email

Page 112: TCP/IP 协议及应用

3.3.1 SMTP

Connect 25

Connection establishment

Page 113: TCP/IP 协议及应用

Message transfer

Page 114: TCP/IP 协议及应用

Connection termination

Page 115: TCP/IP 协议及应用

3.3.1 Pop-post office protocol

Page 116: TCP/IP 协议及应用

pop3

Page 117: TCP/IP 协议及应用

3.3.1 垃圾邮件( SPAM )《中国互联网协会反垃圾邮件规范》对垃圾邮件作了如下界定:

收件人事先没有提出要求或者同意接收的广告、电子刊物、各种形式的宣传品等宣传性的电子邮件;

收件人无法拒收的电子邮件; 隐藏发件人身份、地址、标题等信息的电子邮件;

含有虚假的信息源、发件人、路由等信息的电子邮件。

Page 118: TCP/IP 协议及应用

( SPAM )的产生著名的垃圾邮件事件是在 1994年 4月份,Canter 和 Siegel 的法律事务所把一封标题为“ Green Card Spam” 的移民顾问服务广告邮件发到 6000 多个新闻组,形成典型的垃圾邮件,并引起接收者的公愤,以至于人们以该邮件标题的最后一个单词“ Spam” 作为垃圾邮件的称呼。

Page 119: TCP/IP 协议及应用

( SPAM )的危害 CNNIC 于 2005年 7月发布《第十六次中国互联网络发展状况统计报告》显示,中国网民平均每周收到 14.5封电子邮件,其中垃圾邮件占了 9.3封,垃圾邮件数量长期以来超过正常邮件数量

Page 120: TCP/IP 协议及应用

( SPAM )的危害

中网民每周收到和发出的电子邮件

Page 121: TCP/IP 协议及应用

( SPAM )的处理 基于客户端和服务器端 Black Menu White Menu 基于规则( rule )的邮件过滤 基于概率统计的过滤方法

Page 122: TCP/IP 协议及应用

( SPAM )的处理(统计过滤)

邮件判定模块

类别关键词提取模块 自学习模块

邮件预处理模块

邮件内容解析子模块

中文分词子模块

无用词过滤子模块

邮件类别生成模块

相似度计算子模块

邮件类别生成合并子模块

Page 123: TCP/IP 协议及应用

( SPAM )的处理

Page 124: TCP/IP 协议及应用

( SPAM )的处理 基于网络行为(规则)

Page 125: TCP/IP 协议及应用
Page 126: TCP/IP 协议及应用

3.3.2 HTTP/WWW

HTTP- Hypertext Transfer Protocol无状态协议 WWW的核心协议 应用层 1990- Rfc2616- http1.1

Page 127: TCP/IP 协议及应用

HTTP

Paradigm

Page 128: TCP/IP 协议及应用

HTTP

Message types

Page 129: TCP/IP 协议及应用

HTTP

Request Message

Page 130: TCP/IP 协议及应用

HTTP

Request Line

Page 131: TCP/IP 协议及应用

HTTP

Method

GET

HEAD

POST

PUT

DELETE

Page 132: TCP/IP 协议及应用

HTTP

GETGET后跟随一个网页的位置,服务

器接受请求并返回其请求的页 面。除了页面位置作参数之外,请求还可以跟随协议的版本如 HTTP/1.0等作为参数,以发送给服务器更多的信息 。

Page 133: TCP/IP 协议及应用

HTTP

POSTPOST请求要求服务器接收大量的信息,除了 POST后面跟随的参数之外,浏览器还会在后面持续发送数据,让服务器进行处理。通常, POST方法是和 CGI 程序分不开的,服务器应该启动一个CGI 程序来处理 POST 发送来的数据。

Page 134: TCP/IP 协议及应用

HTTP

HEADHEAD请求在客户程序和服务器之间进行交流,而不会返回具体的文档。当使用 GET 和 POST方法时,服务器最后都将结果文档返回给客户程序,浏览器将刷新显示。而 HEAD请求则不同,它仅仅交流一些内部数据,这些数据不会影响浏览的过程。因此 HEAD方法通常不 单独使用,而是和其他的请求方法一起起到辅助作用。

Page 135: TCP/IP 协议及应用

HTTPURL

Page 136: TCP/IP 协议及应用

HTTPResponse message

Page 137: TCP/IP 协议及应用

HTTP

Status line

Page 138: TCP/IP 协议及应用

HTTP

STATUS CODE

Page 139: TCP/IP 协议及应用

HTTP

Page 140: TCP/IP 协议及应用

示例GET

Page 141: TCP/IP 协议及应用

HTTP

HEAD

Page 142: TCP/IP 协议及应用

HTTP

POST

Page 143: TCP/IP 协议及应用

Web 标准 (http://www.w3c.org) Web1.0

1989年,在 CERN任职的英国人 TimBerners.Lee 发明了WorldWideWeb ,通过WEB ,互联网上的资源可以在一个网页里比较直观的表示出来;而且资源之间,在网页上可以相互链接。

1994年,斯坦福大学两位博士生杨致远和 David Filo 共同创办了雅虎,为用户提供导航服务,并提出了互联网黄页概念。   1997年, Google创始人 Larry Page 和 Sergey Brin 在斯坦福大学开发出一套用于网页评级的系统,随后推出了大受欢迎的搜索服务。

Page 144: TCP/IP 协议及应用

Web 标准 web2.0 2004年 O’Reilly Media Inc.副总裁 Dale Dougherty 在公司的一次筹备会上偶然提出了Web2.0 一词,全球第一次Web2.0大会于 2004年 10月在美国旧金山召开。从此,Web2.0 这一概念以不可思议的速度在全球传播开来。  Web2.0核心是以人为中心。为用户提供更方便工具,鼓励提供内容。根据用户在互联网上留下的痕迹,组织浏览线索,提供相关的服务,给用户创造新的价值。Web2.0 是相对Web1.0 的新一类互联网应用的统称。Web2.0技术主要包括:博客( BLOG )、RSS 、百科全书(Wiki )、网摘、社会网络( SNS )、 P2P 、即时信息( IM )等。

Page 145: TCP/IP 协议及应用

WWW-world wide web 目标

支持构建分布式的协作超媒体信息系统,将整个因特网的信息资源组合在一起,信息以页面的形式提供给客户。

页面及其关系以链接的方式形成—超文本 ;混合了音频 / 视频的内容,需要多种播放媒体的支持—超媒体。

客户机 服务器因特网浏览

表示

Page 146: TCP/IP 协议及应用

WWW-world wide web

Page 147: TCP/IP 协议及应用

Hypertext

Page 148: TCP/IP 协议及应用

Brower structure

Page 149: TCP/IP 协议及应用

Web 类型 Web技术发展的第一阶段——静态文档

主要以静态文档形式提供信息 Web技术发展的第二阶段——动态页面

以数据库为后台数据支撑,提供动态交互 Web技术发展的第三阶段——实时可伸缩的事务处理 电子商务需求,实时、可扩展和安全需求

Page 150: TCP/IP 协议及应用

html xml xhtml HTML 三个主要缺点 :

1 、不能适应现在越多的网络设备和应用的需要, 比如手机、 PDA 、信息家电都不能直接显示 HTML;2 、由于 HTML 代码不规范、臃肿,浏览器需要足够智能和庞大才能够正确显示 HTML;3 、数据与表现混杂, 你的页面要改变显示,就必须重新制作 HTML 。

XMLXML 是一种简单、与平台无关并被广泛采用的标准。XML 标记用于定义数据本身的结构和数据类型, XML 相对于 HTML 的优点是它将用户界面与结构化数据分隔开来。

Page 151: TCP/IP 协议及应用

html xml xhtml

XML 是 web 发展的趋势, XHTML 是一个基于 XML 的置标语言, XHTML就是一个扮演着类似 HTML 的角色的 XML ,所以,本质上说, XHTML 是一个过渡技术,结合了 XML( 有几分 ) 的强大功能及 HTML(大多 数 ) 的简单特性。 XHTML 是当前替代 HTML4 标记语言的标准,使用 XHTML 1.0 。

Page 152: TCP/IP 协议及应用

Web phishing

Page 153: TCP/IP 协议及应用

Web phishing

Page 154: TCP/IP 协议及应用

APWG SPONSORS :

Page 155: TCP/IP 协议及应用

APWG Global Research Partners:

Page 156: TCP/IP 协议及应用

典型攻击手段( S1:Email 发送)

Page 157: TCP/IP 协议及应用

S2 :访问假网页Visible link: https://www.paypal.com/us/cgi-bin/webscr? cmd=_login-runActual link to: http://218.246.224.203/icons/.cgi-bin/paypal/cgi-bin/webscrcmd_login.phpPhish site IP:218.246.224.203

Page 158: TCP/IP 协议及应用

Web phishing handling Html

image

Page 159: TCP/IP 协议及应用

Web phishing handling

E-mail

邮件服务器垃圾邮件过滤模块邮件服务器垃圾邮件

过滤模块

E-mai

邮件服务器垃圾邮件过滤模块

垃圾邮件特征库

垃圾邮件收集及判断模块

垃圾邮件特征抽取模块

黑名单

垃圾邮件分析引擎

E-mai E-mai

spam

spam

spam

垃圾邮件制造者

Internet

spam

垃圾邮件库

Page 160: TCP/IP 协议及应用

Web phishing handling

Page 161: TCP/IP 协议及应用

3.3.3 DNS

主机名

域名

域名服务器地址

域名系统配置

Page 162: TCP/IP 协议及应用

DNS 域名系统( D N S )是一种用于 T C P / I P 应用程序

的分布式数据库,它提供主机名字和 I P 地址之间的转换及有关电子邮件的选路信息。

每个站点(如大学中的系、校园、公司或公司中的部门)保留它自己的信息数据库,并运行一个服务器程序供 I n t e r n e t 上的其他系统(客户程序)查询。 D N S提供了允许服务器和客户程序相互通信的协议。

从应用的角度上看,对 D N S 的访问是通过一个地址解析器( r e s o l v e r )来完成的。在 U n i x 主机中,该解析器主要是通过两个库函数 g e t h o s t b y n a m e()和 g e t h o s t b y a d d r ()来访问。

Page 163: TCP/IP 协议及应用

DNS RFC 1034 [Mockapetris 1987a] 说明了 D N S 的概念

和功能, RFC 1035 [Mockapetris 1987b] 详细说明了DNS 的规范和实现。 D N S最常用的版本(包括解析器和名字服务器)是 B I N D—伯克利 I n t e r n e t域名服务器。

Page 164: TCP/IP 协议及应用

DNS 层次组织

Page 165: TCP/IP 协议及应用

DNS 层次组织

Page 166: TCP/IP 协议及应用

DNS 逻辑层次

Page 167: TCP/IP 协议及应用

顶级域名

三个部分:

1) a r p a 是一个用作地址到名字转换的特殊域

2) 7 个 3字符长的普通域

3) 所有 2字符长的域均是基于 I S O 3 1 6 6 中定义的国家代码,这些域被称为国家域,或地理域。

Page 168: TCP/IP 协议及应用

主、辅域名服务器 一个名字服务器负责一个或多个区域。一个区域的管理者必须为该区域提供一个主名字服务器和至少一个辅助名字服务器。主、辅名字服务器必须是独立和冗余的,以便当某个名字服务器发生故障时不会影响该区域的名字服务。

主、辅名字服务器的主要区别在于主名字服务器从磁盘文件中调入该区域的所有信息,而辅名字服务器则从主服务器调入所有信息。我们将辅名字服务器从主服务器调入信息称为区域传送。

Page 169: TCP/IP 协议及应用

DNS 分组格式

Page 170: TCP/IP 协议及应用

DNS 分组格式 这个报文由 1 2字节长的首部和 4 个长度可变

的字段组成。 标识字段由客户程序设置并由服务器返回结果。客户程序通过它来确定响应与查询是否匹配。

标志字段

0-query1-

response

0-std query ( ip )

1-inverse query2-server query

Authoritative

answer

1-recursive0-iterative

query states

Page 171: TCP/IP 协议及应用

DNS types

Page 172: TCP/IP 协议及应用

Format of Query & Answer

Page 173: TCP/IP 协议及应用

What protocol-udp/tcp

Client(resolver)

Client(resolver)

Mainserver

additionalserver

Udp/tcp

Udp/tcptcp

Port:53

Page 174: TCP/IP 协议及应用

Name length

Domain name Name=label.label…label. Length of label <=63 octet Length of name <=255 octet

Page 175: TCP/IP 协议及应用

DNS domain name structure

Page 176: TCP/IP 协议及应用

DNS Query Process Iterative

in which the server refers the client to another server and lets the client pursue the query.

Recursivein which the first server pursues the query for the client at another server.

Both approaches have advantages and disadvantages, but the iterative approach is preferred for the datagram style of access. The domain

system requires implementation of the iterative approach, but allows the recursive approach as an option.

Page 177: TCP/IP 协议及应用

Instance of iterative query

迭代方式

Page 178: TCP/IP 协议及应用

Instance of recursive query

root

com govcnedu ...

com ptteduibm MIT

seu tsinghuapku

... ...

www email ftp

User

用户主机: user.mit.edu应用程序调用 Gethostbyname( )-- resolver主机调用 MIT 域名服务器(请求解析 www.seu.edu.cn )

User

MIT DNS

edu DNS

root

cn DNS

Edu.cn DNS

Seu.edu.cn DNS

MIT DNS

edu DNS

root

cn DNS

edu.cn DNS

seu.edu.cn DNS

User

递归方式

Page 179: TCP/IP 协议及应用

3.3.4 Ftp 协议 标准( rfc0959 )

FTP提供的文件传送是将一个完整的文件从一个系统复制到另一个系统中。要使用FTP ,就需要有登录服务器的注册帐号,或者通过允许匿名 F T P 的服务器来使用。

FTP 协议为应用层协议,传输层协议为 TCP协议

Page 180: TCP/IP 协议及应用

Ftp 协议 user-FTP process

A set of functions including a protocol interpreter, a data transfer process and a user interface which together perform the function of file transfer in cooperation with one or more server-FTP processes. The user interface allows a local language to be used in the command-reply dialogue with the user server-FTP process

A process or set of processes which perform the function of file transfer in cooperation with a user-FTP process and, possibly, another server. The functions consist of a protocol interpreter (PI) and a data transfer process (DTP)

Page 181: TCP/IP 协议及应用

Ftp 协议 PI : The protocol interpreter. server-DTP : The data transfer process, in i

ts normal "active" state, establishes the data connection with the "listening" data port.

user-DTP: The data transfer process "listens" on the data port for a connection from a server-FTP process.

Page 182: TCP/IP 协议及应用

Ftp 协议

FTP model

Page 183: TCP/IP 协议及应用

Ftp 协议 Two connections

control connectionThe communication path between the USER-PI and SERVER-PI for the exchange of commands and replies. This connection follows the Telnet Protocol.

data connectionA full duplex connection over which data is transferred, in a specified mode and type. The data transferred may be a part o a file, an entire file or a number of files. The path may be between a server-DTP and a user-DTP, or between two server-DTPs.

Normally , the client active the control connection ,the server active the data connection

Page 184: TCP/IP 协议及应用

Ftp 协议 PORT ADDRESS

Both the user and the server DTPs have a default data port. The user-process default data port is the same as the control connection port ,The server-process default data port is the port adjacent to the control connection port (i.e., 21-1=20).the user can set new data port.

Page 185: TCP/IP 协议及应用

Ftp 协议

4x256+150=1174

Page 186: TCP/IP 协议及应用

ftp 传输模式 流方式(默认选择):文件以字节流的形式传

输。对于文件结构,发方在文件尾提示关闭数据连接。对于记录结构,有专用的两字节序列码标志记录结束和文件结束。

块方式:文件以一系列块来传输,每块前面都带有一个或多个首部字节。

压缩方式:一个简单的全长编码压缩方法,压缩连续出现的相同字节。

Page 187: TCP/IP 协议及应用

ftp 传输类型 ASCII 码文件类型(默认选择):文本文件以

NVT ASCII 码形式在数据连接中传输。这要求发方将本地文本文件转换成 NVT ASCII 码形式,而收方则将 NVT ASCII 码再还原成本地文本文件。其中,用 NVT ASCII 码传输的每行都带有一个回车,而后是一个换行。

图像文件类型(也称为二进制文件类型): 数据发送呈现为一个连续的比特流。通常用于传输二进制文件。

Page 188: TCP/IP 协议及应用

ftp客户常用命令( 3-4byte )

Page 189: TCP/IP 协议及应用

现有 ftp 工具一般支持断点续传功能,其实现原理是什么?

restart marker :从指定的标志 marker处,重新开始 get或 put ,如: restart 130 。 表示从最开始下载。你可以使用 CuteFTP等软件进行断点续传,然后注意观察一下它们的 Log窗口,这是学习 FTP编程的最好办法。

Netants 是采用这样的办法:对于 FTP 文件先使用 SIZE 命令得到服务器文件的大小,然后根据蚂蚁数计算每段从哪里开始取(就是做除法)。它根据下载情况把每只蚂蚁现在的当前位置保存在一个 .job 文件中,这样今后就可以知道该从哪里下载了。

Page 190: TCP/IP 协议及应用

4 IPV6

Page 191: TCP/IP 协议及应用

IPV6

Page 192: TCP/IP 协议及应用

IPV6

Page 193: TCP/IP 协议及应用

地球总面积 510000000平方千米 地球陆地面积 149000000平方千米,占地球表面积的 29.2% 地球海洋面积 361000000平方千米,占地球表面积的 71.8%

计算地球每平方米占有的 ipv6 地址数?

Page 194: TCP/IP 协议及应用

IPV6

Page 195: TCP/IP 协议及应用

IPV6

双栈

Page 196: TCP/IP 协议及应用

支持双栈的操作系统 Windows xp ipv6 install Linux

Page 197: TCP/IP 协议及应用

IPV6Tunnel

How to realize?

Ipv4(1)-v6(1)Ipv4(2)-v6(2)Ipv4(3)-v6(3)Ipv4(4)-v6(4)

……Ipv4(n)-v6(n)

Ipv4(1)-v6(1)Ipv4(2)-v6(2)Ipv4(3)-v6(3)Ipv4(4)-v6(4)

……Ipv4(n)-v6(n)

Page 198: TCP/IP 协议及应用

IPV6地址转换

Add & Protocoltransformation

Page 199: TCP/IP 协议及应用

北京

郑州

西安

武汉 合肥 上海

杭州

广州

成都

沈阳

天津

重庆

济南

厦门

大连

长春 哈尔滨

长沙

南京

兰州

10G

2. 5G

用户接入网 用户接入网 用户接入网

用户接入网 用户接入网

用户接入网

用户接入网

用户接入网用户接入网用户接入网

用户接入网

用户接入网

用户接入网

用户接入网

用户接入网用户接入网

用户接入网 用户接入网 用户接入网

CERNET2网络结构图

用户接入网

Page 200: TCP/IP 协议及应用
Page 201: TCP/IP 协议及应用

END of TCP/IP