年別アーカイブ 2020年11月19日

TCPチェックサムの計算方法.001

TCPチェックサム(TCP Checksum)の計算方法

今回はTCPチェックサムにの再計算方法について共有したいと思います!
まず、皆さんが使っているインターネット通信におけるパケットの内部にTCP(Trance Port Protocol)ヘッダと呼ばれる部分があります。
そのTCPヘッダの中にチェックサム(Checksum)と呼ばれるパケットが壊れていないかを確認する部分があります。
このチェックサムの計算方法について解説したいと思います。
5Gの成長とともにSDN(Software Defind Network)の需要も高まってきています。
また、P4 languageを用いたSwitchやProgrammable  Switchを学んでいる方には
チェックサムの再計算の知識は必要だと思います。
参考になれば幸いです!

TCPチェックサムとは?

TCPチェックサムとはTCPヘッダの内部にある、
「このパケットが壊れていないかどうか」を判定するためにある情報です。
まず、TCPとは通信の信頼性を担保する部分(プロトコル)で、現在のほとんどの通信で使われています。
TCPがあるからweb上で安全にメールのやりとりやサイトの閲覧ができると言っても過言ではありません。
もちろん、TCPヘッダの上にTLSやHTTPヘッダがのることが基本でそれらのおかげでもありますが、
それらはTCPヘッダがあるからこそ安全にセッションを張り通信可能な状態になるのです。

今回はそのTCPに欠かせないTCPチェックサムの計算方法について説明します。
現在研究をしている方や、ネットワーク機器を自分で作成している方、などのお役に立てたらと思います。
TCPについて詳しく知りたい方は下記リンクの記事を読んでみてください!(….すいませんまだ執筆中ですm(__)m)

TCPチェックサム計算方法

計算時に用意するもの

まず、TCPチェックサムの計算には用意するべき情報があります。それは疑似IPヘッダとTCPヘッダとペイロードであるデータ部分の3つです。
これらの情報をすべて足して補数をとったものがチェックサムの値となります。
詳細について下記に示します。
(ヘッダフォーマットについては↓下記リンクを参考にしてみてください)
https://www.infraexpert.com/study/tcpip8.html

疑似IPヘッダの用意

IPヘッダの一部の情報を用いて疑似IPヘッダを作成し計算に使います。
・送信元アドレス(IP)4bytes
・宛先アドレス(IP)4bytes
・プロトコルヘッダー(TCP、UDP、ICMPなどの気象情報と同様)1byte
・長さ(TCP / UDP)2bytes
・予約済み8ビット 1byte

TCPヘッダの用意

次に必要なのはTCPヘッダです。
・TCPヘッダはすべて使います。
・TCPヘッダのチェックサムの値は0にします。

データの用意

IPヘッダ、TCPヘッダに続くデータ部分はすべて使用します。

計算

実際に計算していきます。ExcelやGoogleスプレッドシートを用いて計算することをおすすめします!
まず、疑似IPヘッダが16進数である場合は10進数に変換します。
Excelなどのセルの中で =HEX2DEC() とすると16進数から10進数に変更できます。

16進数から10進数に変換するスプレッドシートの写真

16進数から10進数に変換するスプレッドシート図

 

そして10進数に変換した疑似IPヘッダをすべて足していきます。
計算結果は残しておきます。

次に用意したTCPヘッダを上記の疑似IPヘッダの計算と同様にすべて足していきます。

データ部分もすべて足していきます。

最後に疑似IPヘッダとTCPヘッダとデータ部分をすべて足していきます。
そして足した計算結果を今度は =DEC2HEX() で16進数に変換します。
このとき計算結果がFFE4Eのように4byte以上になった場合はF + FE4Eをします (これは電卓のがいいかも)
そのときの答えはFE5Dとなります。
そして1の補数をとるのですが=HEX2BIN() をして2進数の01のビットを反転させて=BIN2HEXする方法もありますが
電卓にてXOR ffff をするとでてくるのでこの方法のが簡単です!

まとめ

今回はTCPチェックサムの再計算方法について共有させて頂きました!
今後は具体的なパケットの見方などの記事も書いていきたいと思います!

また、TCP/IPについて詳しく勉強したい方はこちらの本がおすすめです!


この本で私は幅広くネットワークについての知識をつけることができました!
是非オススメです!(^^)

自己紹介はこちら

シアトル留学の体験記!大学での短期留学やホームステイに行くか悩んでいる方必見!留学の持ち物や費用は?

僕は大学1年生の頃にアメリカのワシントン州にあるシアトルに短期留学しました。
同時にホームステイをしていて、現地の方と一緒に生活をしていました。
この記事では僕が短期留学をした経験や、悩んだことについて
またそれが今の自分にどう役立っているのかなどを紹介します。
現在、留学しようか迷っているあなたの参考の1つになればと思います。

シアトル留学の体験記!大学での短期留学やホームステイに行くか悩んでいる方必見!留学の持ち物や費用は?

まず、短期留学とホームステイの違いを知っていますか?
一般的に、短期留学とは海外にある学校に入学し短期間その学校の授業に参加し勉強することを言います。
逆にホームステイは短期留学と同じく海外に行くのですが、そこの土地の家庭に住まわせてもらい、
短い期間その家族と一緒に生活することです。
ちなみに、学校に通わなくてもホームステイは成立しますし、
ホームステイをしながら学校に通うことも可能です!

僕の場合は、ホームステイをしながら学校に通う短期留学プログラムでした。
そのプログラムというのは少し特殊で留学先の学校に入学しないで授業を受けるというものでした。
留学の形態や内容によって費用は違い、僕の場合は40万円ほどでした!
これらについては記事の中でもあとで詳しく触れていこうと思います!

正直に結論から言いますと、僕はシアトルに留学して大正解でした!
僕は高校性のときに修学旅行でオーストラリアに行き、海外の文化の魅力に感化されて、
日本に居るだけじゃわからないことがあるなと感じ、もっと深く異文化に触れてみたいと思っていました。
なので、僕にとってこのシアトル留学はとてもいい経験になったし、僕の人生の大きな転換点となりました。

短期留学したきっかけは海外の文化・生活に興味憧れがあったから

僕が短期留学をしたいなと思ったきっかけについて話します。
まず、もともと小さい頃から洋画や洋楽が好きでした。
そしてだんだんと 「いつかこの画面の中に出てくるような生活を送ってみたい」 と思うようになりました。
そこで大学1年生の入学したときに大学の留学プログラムの存在を知りました。
しかし、冒頭でも少し話しましたが、このプログラムは少し特殊でした。
その内容は、現地の大学に入学するのではなく、英語の授業のみを現地の先生が行ってくれるというものでした。
つまり、あくまでも在学している大学は変わらずに留学できるというものでした。
それに加えてホームステイだったので、学校から帰るとホストファミリーとの生活が待っており、
想像するだけで「すごく楽しそう!」だとか「どんな生活しているの体験してみたい!!」と思い留学を決意しました。

留学先はどこがいい!?僕がシアトルに行った理由

「留学したい!でもどんな国に行くのがいいんだろう!?」などと思う方もいると思います。
そこで、僕はシアトルに行ったのですがそれにはいくつか理由があります。

まず、シアトルってどこにあるか知ってますか?
シアトルはアメリカ合衆国の西海岸の北にあるワシントン州の都市です。
カナダとの国境も近く、車でカナダへ行くこともできます。
シアトルはスターバックスコーヒーやタリーズコーヒーの発祥の地でもあり、コーヒー好きにはたまりません(笑)
観光地ではパイクプレイスマーケットや山のマウントレーニアなどがあります。
こういった自然と都市がうまく融合しているのがシアトルのいいところで僕が行きたいなと思った理由の1つです!

しかし、シアトルに興味をもったきっかけとしては学校の留学プログラムですでに決まっていたからです。
でも結局は上記のことや、シアトルはについて自分で調べてみて行ってみたいなと思うことが大事だと思います。

そして、最後の理由ですが、シアトルはアメリカの他の都市に比べて治安が良いことです!
やはり、アメリカは日本に比べて治安が悪く、夜は基本一人で出歩けないところが多いです。
しかし、シアトルはもちろん危ない場所はありますが、比較的治安の良いところだと思います。
何ヶ月か暮らすところなのでとても大事な指標になるのではないかなと考えています。

留学先に何ヶ月滞在した!?

僕が参加した留学プログラムは10週間のものでした。
つまり、大学の1年生の5月末から2ヶ月半、8月の上旬まで短期留学しました。
その当時彼女が居て、長期留学よりも短期でちょうどいいかな~と思いました。
→関連リンク:彼女記事(Comming Soon)

気になる留学にかかる費用は!?

ここで、僕が参加した留学プログラムの参加費用について説明します。
現地での入学金や授業料がほとんどないので、比較的通常の短期留学よりも安かったんじゃないかなと個人的に感じてます。
具体的な金額としては40万円ほどでした。
これにプラスして現地で遊ぶお金がかかってきます。
大きなお金ではありますが、海を超えてその地で生活することによって得られるものも大きいと思います。

留学の時に僕が持っていった持ち物は!?

僕が行った時期は5月だったので、Tシャツと羽織れるパーカーなどを持っていきました。
基本的に下着を含めある程度現地で買う予定だったので、思い出も含めて現地で色々と揃えました!
なので、持っていったものは少なかったのですが、あってよかったものはカメラです!
Canonのデジカメだったのですが、スマホとは違って画質もよく景色など綺麗に撮れたので、
今見返してもほんとにデジカメで撮影していてよかったなと思います!
あとは、現金を少し持って行ってたのですが、意外に使えました!
基本的にカード決済なので現金はあまり使わないのですが、
小さなお店だったり、たまに使えないお店があるので、少しは現金も持っていっていたほうがいいです!

まとめ

僕は留学中すごくすごく楽して2ヶ月半は短いっと思ってたのですが、
最後の方は少しだけホームシックになっていたので、
今思えば長期じゃなくて、短期留学でよかったのかなと思ってます。
もし、もっと留学したいなと思ったら次長期留学してみるのもいいんじゃないかなと思います!
ホームステイだけでなく学校に行くことで現地の学生とも触れ合えるので、
そういった環境の場所を選ぶといいかもしれません。
今、悩んでる方は勇気を出して短い期間でも海を超えてみましょう!!