1 / 38

第三篇

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

danae
Download Presentation

第三篇

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协议 设计、制作:谭献海 EMAIL:xhtan@home.swjtu.edu.cn

  2. 网络编程解决了数据包的发送与接收问题 SOCKET,JAVA等:网络层和数据连路层报文 NDIS,LIBPCAP,WINPCAP等:连路层报文 报文如何构建?? →网络协议---TCP/IP 背景

  3. 网络上拦截下来的数据 同步序列, (≧ 8字节) 同步结束,数据开始 一个从Internet上拦截下来的实际比特流 101010101010……10101011000000001000000010101101000110000101110110001110010100100101010010101011001000111110101101110000000010000000000001000101000000000000000000101000001110000111011001000000000000000100000000000110111110110100111111000000101010000000000001111101110010100110001001111011100000100000100000011000000000000101000000110010000001011110010110000101000110011001011010100000000110110101000000000100000000000000000011001111001100010000000000000000001000000010000000100000001000000010000000100000 上述比特流的含义 101010101010……10101011000000001000000010101101000110000101110110001110010100100101010010101011001000111110101101110000000010000000000001000101000000000000000000101000001110000111011001000000000000000100000000000110111110110100111111000000101010000000000001111101110010100110001001111011100000100000100000011000000000000101000000110010000001011110010110000101000110011001011010100000000110110101000000000100000000000000000011001111001100010000000000000000001000000010000000100000001000000010000000100000 以太帧头 (14字节) IP报头 (20字节) TCP报头 (20字节) 数据

  4. 网络体系结构 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层结构;因特网四层结构

  5. 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 (设备驱动与接口卡)

  6. 10M 以太网 以太网帧格式 • 两种帧格式: • 以太网帧 • IEEE 802.3帧

  7. 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

  8. 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,

  9. 以太网协议类型 以太网类型代码(十六进制) 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

  10. 以太网帧格式 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:指明数据的类型,其定义与以太网帧中的类型域相同.

  11. 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协议

  12. 逻辑链路控制(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 为索引调用相应的函数,该函数把数 据包挂到相应接收处理队列。 函数列表

  13. FCS Pad Data DA SA Type PA 帧间隔 PA 帧间隔> 9.6 ms 在相继发送的两帧之间强制插入9.6s的间隔, 以确保想要发送数据的其他站点也能占用信道, 同时让接收站点准备好接收下一帧 作为以太网信道空闲的判断依据。

  14. (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 字节

  15. 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数据链路层

  16. 使用 TCP/IP 的 客户进程 用户拨号入网的示意图 用户家庭 因特网服务提供者(ISP) 调制解调器 至 因 特 网 PC 机 路由器 … 拨号电话线 路由选择 进程 调制解调器 使用 TCP/IP 的 SLIP/PPP 连接

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

  18. 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。

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

  20. PPP Ethernet ATM PPP (Point to Point Protocol)

  21. 网络层协议(IP,IPX) 网络控制协议NCP(如IPCP,IPXCP) 链路控制协议LCP 链路层封装格式 (帧格式) 物理层(如EIA RS-232,V.24,V.35) PPP的内容及位置 • RFCs: 1661,1548, 1332 NCP报文负责协商通信双方之间的网络网络层参数 PPP链路层 LCP报文负责对链路层进行初始化 • 网络安全验证协议PAP和CHAP

  22. 因为是点—点连接→所以地址域 无意义,地址字 段的值总是FFH ,表示所有站 点都接收 定义负载数据的报文类型,比如 LCP, NCP, IP, OSI CLNP, IPX等,定义如下 校验字段是CRC冗余码,缺省为2字节,可以协商为4个字节。 控制字段的缺省值是03H,表明PPP在缺省情况下不使用编号,不提供捎带确认的可靠传输机制。但在线路噪声较大的环境中可以选用有编号的传输模式。 PPP 帧格式 flag Address Flag Control Protocol Information CRC 01111110 01111110 1111111 00000011

  23. 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。 字符填充法

  24. 协议域值 含义 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协议域定义

  25. Code ID Length Option or Data 1 1 2 ≥0Byte 图 封装在PPP 帧中的LCP报文 LCP 7E FF 03 C0 21 Information FCS 7E

  26. 名称 方向 描述 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可以协商的参数包括:为数据帧设置最大的有效载荷的长度、启动身份验证、选择使用的协议、正常运行时启用线路质量监测、以及选择各种头部压缩方式等。

  27. Type FF Len 03 Data C0 21 Code (1~4) Type ID Len Length Data …… Data FCS 7E LCP报文配置选项格式 7E 1 1 ≥0Byte 下一个配置选项……

  28. 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常用配置选项类型 例:控制字符集的协商

  29. 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来协商确定这些参数

  30. 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

  31. 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

  32. PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。 家庭拨号上网就是通过PPP在用户端和运营商的接入服务器之间建立通信链路。 目前,宽带接入正在成为取代拨号上网的趋势,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。 PPP协议的应用

  33. PPPoE的实质是以太网和拨号网络之间的一个中继协议,它继承了以太网的快速和PPP拨号的简捷、用户验证和动态IP分配等优势。 PPPoE协议把数据帧报文按照PPP的格式定义封装,例如,数据链路控制协议报文、网络层控制协议报文、认证报文等。 点到点传输,而不是像以太网络或其他多点访问网络中定义的点到多点的传输。 PPPOE

  34. PPPoE协议两个阶段:发现和PPP会话 发现阶段。在发现过程中客户机以广播方式,寻找可以连接的所有的接入交换机,并获得其以太网MAC地址。然后选择需要连接的认证服务器(提供PPPoE接入服务的主机),并确定所要建立的PPP会话识别标号 。 PPP会话阶段。客户机与接入交换机根据在发现阶段所协商的PPP会话连接参数,进行PPP会话(动态协商链路层和网络层参数) PPPOE

  35. 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结构,也即是(类型+长度+数据)。

  36. 参数取值 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

  37. PPPOE

  38. Thanks!

More Related