• 締切済み

友達の質問に回答したいんですが、ネットワークに関することです。

友達の質問に回答したいんですが、ネットワークに関することです。 ネットワークの最初のくだりになるんですが、 「あ」という文字をネットワークで送信する。 「あ」はUNICODEの「3042」です。これを2進数で表示すると、「1001110110010」です。これを2バイトで表示すると、「0001001110110010」です。それに、ベーシック手順で送信なれらば、SOH(ヘッディング開始)【0000001】ヘッディング【0000001】、STX(テキスト開始)【0000010】データ、ETX(テキスト終了)【0000100】BCC【偽りチェックということで、水平パリティ、垂直パリティとあります。それによってデーターが変わります。】これだけのデータを送信します。 「あ」=  「00010011101100100000001000000100000100000100」これにパリティチェックです。 これで、いいのでしょうか?

みんなの回答

回答No.4

No2です。 No3さんの回答で気づきましたが、先ほどの回答でパリティについて間違いがあります。すみませんでした。 まず、水平垂直を逆に覚えていました。垂直と水平を入れ替えて読んでください。 もう一つ、垂直パリティのつく位置が間違っていました。 なんとなくパリティは後に付くものというイメージがあって不用意に書いてしまいましたが、ASCIIコードは最上位ビットがパリティのために空けられていますのでここにつきます。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

基本型データ伝送制御手順(JIS X 5002)については,下記URLの「1.2 ベーシック手順」を参照。 http://www.kurejbc.com/technical/technical-8.htm JIS X 5002はJIS 7単位符号の使用を前提としていますので,Unicodeをベーシック手順で送信するということ自体が誤りです。派生プロトコルである全銀協標準通信プロトコル(ベーシック手順)では日本語(漢字)が扱えるそうなのですが,ANo.2と同様,私もこれに関する詳細な情報を見つけることができませんでした。 http://www.asahi-net.or.jp/~SF5S-OOKB/edi/family/edisisi4.htm ということで,JIS X 0201符号の'A' (ASCIIコードでも同じ) という文字をベーシック手順で送信する,と問題を修正してみました。解答は次のような5バイトになると思います。 x0000001 …SOH x0000010 …STX x1000001 …'A' x0000011 …ETX yyyyyyyy …BCC ・xは垂直パリティ(文字パリティ),yは水平パリティ(ブロックパリティ)。  上記の説明図だと垂直水平の方向が逆になりますので直観的ではないです。 ・SOHとSTXの間のヘディングは省略可能なはずです。 ・ETXは 0000100 ではなく 0000011 です。 JIS X 5001の既定は偶数パリティですので,xとyに偶数パリティを埋めると次のようになります。 10000001 …SOH 10000010 …STX 01000001 …'A' 00000011 …ETX 01000001 …BCC 私も机上で資料を見ただけの素人ですので,間違いがあったら遠慮なくご指摘ください。

回答No.2

全然違います。 が、多分その文章が言いたいのは「一文字送るだけでも大変だよ」というだけでしょう。 あなたの理解でもさほど問題はありません。 一応どこが間違っているかは書いておきますが失礼ながら今の段階で理解できるものではないと思います。 その前にまずあなたの文章を読み解くのが大変なのですが、 >ネットワークの最初のくだり とやらの文章が印刷物なりネット上などにあり、 >「あ」という文字を~(中略)~を送信します。 の部分がその文章からの引用で、 >「あ」=  「0001~ の部分があなたの判断で、この判断の是非を聞いていると考えてよろしいでしょうか。 以下そのつもりで書きます。 さて、あなたの理解も間違っていますがその文章の不親切さも相当なものです。 >「あ」はUNICODEの「3042」です。 何の前触れもなく16進数を出すのはどうかと思います。間違ってはいませんが。 >これを2進数で表示すると、「1001110110010」です。 データを2進数で表すのに上位の0を省く書き方は普通しません。ちょっと神経を疑います。 >これを2バイトで表示すると、「0001001110110010」です。 最初からこちらを書けばいい話。 >それに、ベーシック手順で送信なれらば、 ということで「ベーシック手順」であってイーサネットでもTCP/IPでもありませんね。 >No1さん >SOH~(中略)~STX(テキスト開始)【0000010】 まあいいんですけど、さっきは2バイトが16ビットだったのにここでいきなり1バイトが7ビットになっているのですよねえ。 >データ、 ここに「あ」のデータを書くという意味です。ここがあなたの間違っていたところ。 >ETX(テキスト終了)【0000100】 >BCC【偽りチェックということで、 「誤り」の間違いでしょう。 >水平パリティ、垂直パリティとあります。それによってデーターが変わります。】 この位置に書くのは垂直パリティだけです。水平パリティは今までに出た7ビットのデータそれぞれに1ビットづつ付きます。 なお、水平パリティが付くならデータ部も1バイトが7ビットでなければいけませんので、「あ」を16ビットのUnicodeでは送れません。 ベーシック手順には1バイトが8ビットでのやりかたもあるようですがちょっと情報が見つかりませんでした。 正しい(?)送信内容は SOH【0000001】水平パリティ【?】ヘッディング【0000001】水平パリティ【?】STX【0000010】水平パリティ【?】データ【0001001110110010】ETX【0000100】水平パリティ【?】垂直パリティ【????????】 となります。もっともデータ部が8ビットな扱いが正しいかどうかはわかりませんが。

  • wellow
  • ベストアンサー率46% (892/1932)
回答No.1

>「あ」=  「00010011101100100000001000000100000100000100」これにパリティチェックです。 細かい点はチェックしていませんが、「データ+パリティ」だけのもので、どうやって相手に届けるんですか? 例えばイーサネットで、TCP/IPで送るとしましょう。データはTCPでカプセル化され、そのTCPパケットはIPでカプセル化され、そのIPパケットはイーサネットでカプセル化されます。 イーサネットはMACアドレス(48ビット)で送信元、受信先を判別します。要は送信元アドレスと受信先アドレスがあるということです。 IPはIPアドレス(IPv4の場合、32ビット)で送信元、受信先を判別します。要は送信元アドレスと受信先アドレスがあるということです。 TCPはTCPポート番号(16ビット)で送信元、受信先を判別します。要は送信元アドレスと受信先アドレスがあるということです。 例えて言うならば、イーサヘッダは、送信者と受信者の会社名が書かれた封筒です。 その封筒を開けると、また封筒(IPヘッダ)があり、送信者と受信者の部署名が書かれています。 その封筒を開けると、また封筒(TCPヘッダ)があり、送信者と受信者の氏名が書かれています。 その封筒の中に要件が書かれている手紙があります。 本来封筒に入れるべき手紙をそのまま剥き身でポストに投げ込んだところで、誰にも届きません。

関連するQ&A