slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第三篇 PowerPoint Presentation
Download Presentation
第三篇

Loading in 2 Seconds...

play fullscreen
1 / 38

第三篇 - PowerPoint PPT Presentation


  • 187 Views
  • Uploaded on

第三篇. TCP/IP 协议. 设计、制作:谭献海 EMAIL : xhtan@home.swjtu.edu.cn. 网络编程解决了数据包的 发送 与 接收 问题 SOCKET,JAVA 等 : 网络层和数据连路层报文 NDIS,LIBPCAP,WINPCAP 等 : 连路层报文 报文如何构建 ?? → 网络协议 --- TCP/IP. 背景. 网络上拦截下来的数据. 同步序列 , (≧ 8 字节 ). 同步结束 , 数据开始. 一个从 Internet 上拦截下来的实际比特流

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第三篇' - danae


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

第三篇

TCP/IP协议

设计、制作:谭献海

EMAIL:xhtan@home.swjtu.edu.cn

slide2
网络编程解决了数据包的发送与接收问题

SOCKET,JAVA等:网络层和数据连路层报文

NDIS,LIBPCAP,WINPCAP等:连路层报文

报文如何构建??

→网络协议---TCP/IP

背景
slide3
网络上拦截下来的数据

同步序列,

(≧ 8字节)

同步结束,数据开始

一个从Internet上拦截下来的实际比特流

101010101010……10101011000000001000000010101101000110000101110110001110010100100101010010101011001000111110101101110000000010000000000001000101000000000000000000101000001110000111011001000000000000000100000000000110111110110100111111000000101010000000000001111101110010100110001001111011100000100000100000011000000000000101000000110010000001011110010110000101000110011001011010100000000110110101000000000100000000000000000011001111001100010000000000000000001000000010000000100000001000000010000000100000

上述比特流的含义

101010101010……10101011000000001000000010101101000110000101110110001110010100100101010010101011001000111110101101110000000010000000000001000101000000000000000000101000001110000111011001000000000000000100000000000110111110110100111111000000101010000000000001111101110010100110001001111011100000100000100000011000000000000101000000110010000001011110010110000101000110011001011010100000000110110101000000000100000000000000000011001111001100010000000000000000001000000010000000100000001000000010000000100000

以太帧头

(14字节)

IP报头

(20字节)

TCP报头

(20字节)

数据

slide4
网络体系结构

TCP/IP Protocols

TCP/IP Model

OSI Ref Model

Application

应用层

FTP

Telnet

HTTP

Presentation

Session

主机-主机层

TCP

UDP

Transport

Network

网间网层

IP

Datalink

网络

接口层

Ethernet

X.25

Point-to-Point

Physical

OSI:7层结构;因特网四层结构

tcp ip

server

FTP

IP

IP

Ethernet

Driver

以太

网卡

TCP/IP 四层结构

FTP

client

FTP

server

Application

(网络应用:ftp, smtp, http)

Transport

TCP

TCP

(端-端 通信)

Network

(路由,转发,互连)

IP

IP

Network interface

Ethernet

Driver

Ethernet

Driver

(设备驱动与接口卡)

slide6
10M 以太网

以太网帧格式

  • 两种帧格式:
  • 以太网帧
  • IEEE 802.3帧
ethernet 802 3 frame format

IP

IPX

AppleTalk

Size in bytes

4

6

6

2

IP

IPX

AppleTalk

Length

Ethernet & 802.3 Frame Format

Ethernet帧

Dest.Address

SourceAddress

Type

Info

CRC

  • IEEE 802.3帧

Dest.Address

SourceAddress

Length

LLC

SNAP

Info

Pad

CRC

6

6

2

4

ethernet
Ethernet地址格式

(全球唯一 ID)

OUI

10111101

G/I bit

(Group/Individual)

G/L bit

(Global/Local)

  • G/L bit:administrative(可管理性)
    • Global: 全局地址,全球唯一,由IEEE统一分配
    • Local: 局部地址,软件指定
  • G/I: bit:multicast(多路复用)
    • I: unicast address(单播地址)
    • G:. 组播地址

OUI:厂商地址,如00000C Cisco,00AA00 Intel,080002 3COM,

08002B DEC,08005A IBM,

slide9
以太网协议类型

以太网类型代码(十六进制)

0800

0805

0806

0BAD

0BAE

0BAF

8035

809B

8137-8138

86DD

8863

8864

数据类型

互联网协议IP

X.25 Level 3

地址解析协议ARP

Banyan VINES

VINES闭环呼叫

VINES响应

RARP

Apple Talk

IPX (Novell)

IPv6

PPPOP discovery stage

PPPOE session stage

slide10
以太网帧格式

IP Datagram

DSAP

SSAP

Control

Procotol ID or

Organization Code

Type

38-1492

802.2 LLC

SNAP

数据

7

1

6

6

2

4

LLC帧 填充

前导

帧分隔符开始

目的地址

源地址

数据长度

帧校验序列

MAC帧

SNAP:Sub-Network Access Protocol

组织代码:分配Ethernet地址的组织

Type:指明数据的类型,其定义与以太网帧中的类型域相同.

llc sap
LLC层服务访问点SAP

访问点的值

FF

AA

E0

F0

80H

06

98H

42H

服务

LSAP(LLC Service Access Point)

子网访问协议(Ethernet SNAP)

NovellNetware (IPX)

IBM NETBIOS

XNS

ARPANET网际协议(IP)

ARPANET地址转换协议(ARP)

IEEE802.1协议

slide12
逻辑链路控制(LLC)子层

服务访问点SAP——控制数据的上层分发

DSAP=126

SSAP

Control

OnReceivedData_IP(Length,PDU)

OnReceivedData_IPX(Length,PDU)

OnReceivedData_NetBEUI(Length,PDU)

OnReceivedData_05(Length,PDU)

OnReceivedData_06(Length,PDU)

……….

…...

LLC层维护一张以DSAP为索引的函数

列表,每接收到一个数据包,以DSAP

为索引调用相应的函数,该函数把数

据包挂到相应接收处理队列。

函数列表

slide13

FCS

Pad

Data

DA

SA

Type

PA

帧间隔

PA

帧间隔> 9.6 ms

在相继发送的两帧之间强制插入9.6s的间隔,

以确保想要发送数据的其他站点也能占用信道,

同时让接收站点准备好接收下一帧

作为以太网信道空闲的判断依据。

slide14

(2) 大约在 时刻到达 B

A

B

A

(3) B 开始发送;

在 时刻发生冲突

B

A

(4) 冲突信号在

2时刻到达A

B

最小以太帧长度:64字节

A 和 B 在总线的两端

A

B

(1) 在0时刻开始

发送

帧发送时延必须超过2,以防止在第一位数据到达总线最远端之前, 数据已全部发送完毕,从而引起冲突;而发送方却误以为帧已成功发送

对于以太网,此时隙时间为 51.2 ms,即512bit,64字节

因此最小帧长为 64字节 (不包括前同步码), 数据字段最少为 46 字节

internet

FTP

TELNET

HTTP

NFS

SNMP

SMTP

。。。

应用层

TFTP

DNS

。。。

主机主机

TCP

UDP

网间网层

ICMP

IP

IGMP

ARP

RARP

网络

接口层

EtherNet, Token Ring, Token Bus, FDDI,PPP/SLIP, X. 25

Internet数据链路层
slide16

使用 TCP/IP 的

客户进程

用户拨号入网的示意图

用户家庭

因特网服务提供者(ISP)

调制解调器

PC 机

路由器

拨号电话线

路由选择

进程

调制解调器

使用 TCP/IP 的

SLIP/PPP 连接

internet1
Internet数据链路层
  • 点到点链路
  • 两种链路层协议 (old SLIP, now PPP)
  • SLIP: 非推荐的Internet标准  只能用于IP协议,不兼容
  • PPP: 推荐的Internet 标准。
serial line ip slip

0xc0 IP分组 0xc0

IP数据报

C0

db

C0

db

dc

db

dd

C0

SLIP帧

Serial Line IP (SLIP)

用于在串行线上传送IP分组

RFCs: 1055, 1144

如果标志字节(0xC0)出现在IP数据报内部,就通过字符填充来转义,将0xC0替换成两个字节0xDB,0xDC。如果0xDB出现在IP数据报内部,则也要替换为0xDB,0xDD。

serial ip slip
Serial IP (SLIP)
  • 简单: only framing = Flags + byte-stuffing
  • 可选择对报头进行压缩(CSLIP) 以提高效率。
  • 问题:
    • 需要预先了解对方的 IP 地址 (不能动态分配 IP地址)
    • 无 “type” 域 =>只支持IP协议,不能多路协议封装
    • 无校验和 => 所有的错误检测/纠正均由高层进行。
slide21

网络层协议(IP,IPX)

网络控制协议NCP(如IPCP,IPXCP)

链路控制协议LCP

链路层封装格式 (帧格式)

物理层(如EIA RS-232,V.24,V.35)

PPP的内容及位置
  • RFCs: 1661,1548, 1332

NCP报文负责协商通信双方之间的网络网络层参数

PPP链路层

LCP报文负责对链路层进行初始化

  • 网络安全验证协议PAP和CHAP
slide22

因为是点—点连接→所以地址域

无意义,地址字

段的值总是FFH

,表示所有站

点都接收

定义负载数据的报文类型,比如 LCP, NCP, IP, OSI CLNP, IPX等,定义如下

校验字段是CRC冗余码,缺省为2字节,可以协商为4个字节。

控制字段的缺省值是03H,表明PPP在缺省情况下不使用编号,不提供捎带确认的可靠传输机制。但在线路噪声较大的环境中可以选用有编号的传输模式。

PPP 帧格式

flag

Address

Flag

Control

Protocol

Information

CRC

01111110

01111110

1111111

00000011

slide23
将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。

若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。

若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。

字符填充法
slide24

协议域值

含义

0021

Internet protocol(IP协议)

002D

Van Jacobson Compressed TCP/IP(压缩的TCP/IP)

002F

Van Jacobson Uncompressed TCP/IP(未压缩的TCP/IP)

8021

IPCP(IP控制协议)

C021

LCP(链路控制协议)

C023

PAP(Password Authentication Protocol,口令认证协议)

*C025

LQR(Link Quality Report,链路质量报告)

*C223

CHAP(Change Handshake Authentication Protocol,竞争握手认证协议)

PPP协议域定义
slide25

Code ID Length Option or Data

1 1 2 ≥0Byte

图 封装在PPP 帧中的LCP报文

LCP

7E FF 03 C0 21 Information FCS 7E

slide26

名称

方向

描述

Configure-request

I→R

列出建议的选项和其值

Configure-ack

I←R

接受所有的选项

Configure-nak

I←R

有些选项不接受

Configure-reject

I←R

有一些选项不可协商

Terminate-request

I→R

请求断开线路

Terminate-ack

I←R

OK,线路已断开

Code-reject

I←R

收到不明的请求

Protocol-reject

I←R

未知的协议请求

Echo-request

I→R

请将本帧送回

Echo-reply

I←R

送回的帧

Discard-request

I→R

需丢弃本帧(用于测试)

I——启动者

R——响应者

通过LCP可以协商的参数包括:为数据帧设置最大的有效载荷的长度、启动身份验证、选择使用的协议、正常运行时启用线路质量监测、以及选择各种头部压缩方式等。

slide27

Type

FF

Len

03

Data

C0 21

Code

(1~4)

Type

ID

Len

Length

Data

……

Data

FCS

7E

LCP报文配置选项格式

7E

1 1 ≥0Byte 下一个配置选项……

slide28

Type 值

含义

1

最大接收单元 (Maximum-Receive-Unit)

2

异步控制字符集(Async-Control-Character-Map)

3

身份验证协议(Authentication Protocol)

4

链路质量协议 (Quality Protocol)

5

Magic Number (魔域)

7

协议字段压缩 (Protocol-Field-Compression)。

8

地址控制字段压缩(Address & Control Field Compression)

9

FCS选择(FCS-Alternatives)

LCP常用配置选项类型

例:控制字符集的协商

slide29

Type

FF

Len

03

Data

8021

Code

Type Len Data……

ID

Len

Data…

FCS

7E

7E

1 1 ≥0Byte 下一个配置选项……

IPCP报文格式

添加TCP/IP协议时,需要填写:IP地址、地址掩码、 (主、辅)域名服务器地址----PPP中通过IPCP来协商确定这些参数

slide30
IPCP类型定义

1IP-Addresses(IP地址群)

2IP-Compression protocol(IP压缩协议)

3IP-Address(IP地址)

4Mobil-Ipv4

129Primary DNS Server Address(基本域名服务器地址)

130Primary NBNS Server Address(基本NetBIOS域名服 务 器地址)

131Secondary DNS Server Address

132 Secondary NBNS Server Address

slide31
1. PC通过modem呼叫路由器(建立物理连接)

2. PC 和路由器交换 LCP 报文来协商PPP参数(建立链路连接)

3. 身份认证。

4. 交换NCP 报文来配置网络层参数,比如TCP/IP ( 需要动态分配 IP 地址、域名服务器地址)

(建立网络连接)。

5. 数据传输, 即发送/接收IP分组

6. 采用NCP来释放网络层连接(释放IP地址); 用LCP 来释放链路层连接.

7. Modem 挂机(释放物理连接).

PPP 状态转移图

1. Carrier

Detected

Dead

7. Carrier

Dropped

failed

Link conf

Terminate

2. Options

Negotiated

6. Done

failed

Authenticate

5.

datacomm

3. Authentication

Completed

4. NCP

Configuration

Netconf

slide32
PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。

家庭拨号上网就是通过PPP在用户端和运营商的接入服务器之间建立通信链路。 目前,宽带接入正在成为取代拨号上网的趋势,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。

PPP协议的应用
pppoe
PPPoE的实质是以太网和拨号网络之间的一个中继协议,它继承了以太网的快速和PPP拨号的简捷、用户验证和动态IP分配等优势。

PPPoE协议把数据帧报文按照PPP的格式定义封装,例如,数据链路控制协议报文、网络层控制协议报文、认证报文等。

点到点传输,而不是像以太网络或其他多点访问网络中定义的点到多点的传输。

PPPOE
pppoe1
PPPoE协议两个阶段:发现和PPP会话

发现阶段。在发现过程中客户机以广播方式,寻找可以连接的所有的接入交换机,并获得其以太网MAC地址。然后选择需要连接的认证服务器(提供PPPoE接入服务的主机),并确定所要建立的PPP会话识别标号 。

PPP会话阶段。客户机与接入交换机根据在发现阶段所协商的PPP会话连接参数,进行PPP会话(动态协商链路层和网络层参数)

PPPOE
pppoe2

Destination-addr. Source-addr. Ethennet-Type payload checksum

Ver type code session-ID length payload

0001 0001 8bits 2octets 2octets

TAG-type TAG-length TAG-value.....TAG-type TAG-length TAG-value

16bits 16bites 16bits 16bites

PPPOE

标记的封装格式采用的是大家所熟知的TLV结构,也即是(类型+长度+数据)。

pppoe3
参数取值

Ethernet-TYPE: 0x8863 discovery stage

0x8864 session stage

CODE:

0x00 PPP session stage

0x09 PPPOE active discovery initialization(PADI) packet

0x07 PPPOE active discovery offer (PADO) packet

0x19 PPPOE active discovery request (PADR) packet

0x65 PPPOE active discovery session-confirmation (PADS) packet

0xa7 PPPOE active discovery terminated (PADT) packet

PPPOE