》2.透明传输 如果所传输的数据都是可打印的ASC||码组成的文 本文件时,数据可在帧定界符中“透明传输”过 去 当数据部分是非ASCl码文件时(如二进制代码的 程序或图像),则数据中某个字节的二进制代码, 就有可能恰好和SOH和E0T这种控制字符一样· 这会出现什么情况? <<<<<河南中医学院信息技术学院 <<<<<<http://it.hactcm.edu.cn
2. 透明传输 如果所传输的数据都是可打印的ASCII码组成的文 本文件时,数据可在帧定界符中“透明传输”过 去。 当数据部分是非ASCII码文件时(如二进制代码的 程序或图像),则数据中某个字节的二进制代码, 就有可能恰好和SOH和EOT这种控制字符一样…… 这会出现什么情况?
》2.透明传输 出现了“EOT” 完整的帧 发送 数据部分 在前 SOH EOT EOT 被接收端 被接收端当作无效帧而丢弃 误认为是一个帧 <<<<<河南中医学院信息技术学院 <<<<<<http://it.hactcm.edu.cn
2. 透明传输 SOH EOT 出现了“EOT” 被接收端 被接收端当作无效帧而丢弃 误认为是一个帧 数据部分 EOT 完整的帧 发送 在前
》解决透明传输问题 字节填充 发送端的数据链路层在数据中出现控制字符“S0H 或“E0T”的前面插入一个转义字符“ESc”(其十 六进制编码是1B)。 接收端的数据链路层在将数据送往网络层之前, 删除插入的转义字符。 如果转义字符也出现数据当中,那么应在转义字 符前面插入一个转义字符。当接收端收到连续的 两个转义字符时,就删除其中前面的一个 <<<<<河南中医学院信息技术学院 <<<<<<http://it.hactcm.edu.cn
解决透明传输问题 • 发送端的数据链路层在数据中出现控制字符“SOH” 或“EOT”的前面插入一个转义字符“ESC”(其十 六进制编码是 1B)。 • 接收端的数据链路层在将数据送往网络层之前, 删除插入的转义字符。 • 如果转义字符也出现数据当中,那么应在转义字 符前面插入一个转义字符。当接收端收到连续的 两个转义字符时,就删除其中前面的一个。 字节填充
DD-D DD2D1D000001 010011100101110 0000 NULDLE空格0@P 0001 SOH DC1 a 0010 STX DC2 2br b 0011 ETX DC3# qrs 0100 EOD DC4$ d 0101 ENQNAK% E e 0110 ACK sYn& F 011l BEL ETB 678 G W 1000 BS CAN( HⅩh 1001 HT EM 1010 LF SUB* J 1011 VT(ESC )+ k 1100 FF FS KLM 1101 CR CS m <<<< 1110 SO RS N sUs/?o。|Di
D 3 D 2 D 1 D 0 D 6 D 5 D 4 000 001 010 011 100 101 110 111 0000 NUL DLE 空格 0 @ P ` p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 " 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB ' 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ l | 1101 CR CS - = M ] m } 1110 SO RS . > N ^ n ~ 1111 SI US / ? O _ o DEL
》用字节填充法解决透明传输的问题 帧开始符 帧结束符 原始数据 SOH EOT SOH ESC SOH EOT 字节填充 字节填充 字节填充 字节填充 SOH ESCIEOT ESCISOH ESCIESCI ESCISOH EOT 经过字节填充后发送的数据 发送 在前 <<<<<河南中医学院信息技术学院 <<<<<<http://it.hactcm.edu.cn
SOH SOH EOT ESC SOH ESC EOT ESCSOH ESC ESC ESCSOH 原始数据 EOT EOT 经过字节填充后发送的数据 字节填充 字节填充 字节填充 字节填充 发送 在前 帧开始符 帧结束符 用字节填充法解决透明传输的问题 SOH