今年から新卒でWebエンジニアとして働いているのですが、仕事で直接意識することのあまりないコンピュータネットワークの基礎を学ぼうと思い、TCP/IPについて調べたので、アウトプットとしてまとめます。
ネットワークの改装図
それではそれぞれの層の説明をしていきます。
アプリケーション層
アプリケーション層は利用しているユーザーが直接触れる部分です。今このQiitaを見る際にに行っているWebぺージの表示においては、ブラウザとサーバーがアプリケーション層にあたり、リクエストしたURLと表示するページのデータのやり取りを行います。
トランスポート層
トランスポート層の役割は、アプリケーション層のプログラムから受け取ったデータを宛先のアプリケーション層に送り届けることです。もしデータが正常に届かない場合には再送などを行います。
この層の一番の役割は、プログラムを区別する番号をつけ、それを目印に適切なプログラムに対し、データを渡すことです。
データが適切に届かなかった場合にはm送る側のトランスポート層から再送のリクエストを送り、受ける側のトランスポート層はそのリクエストが届いたら、データを再度送り直すというような挙動をとります。
インターネット層
インターネット層はコンピュータのアドレスを用いてデータを送信先まで届けます。通信において通信先のコンピュータまでの経路を熟知するルーターが仲介を行います。またルーターはバケツリレーのようにデータを転送します。
受け手側のインターネット層の役割に関しては、送信されてきたものの宛先が自分である場合はトランスポート層に渡します。
ネットワークインターフェース層
この層では有線LANカードや無線LANカードなどネットワークカードに合わせてデータを用意し、送受信します。インターネット層は宛先に向けて送信するのに対し、このネットワークインターフェース層は物理的に接続されている機器まで届けることのみに特化しています。
ネットワークカードについてはこちら
https://wa3.i-3-i.info/word12498.html
また、実際に送信されハードウェアを通過している際のデータの状態は、上の4層を通り抜けた後下の図のようになっています。()内に書かれている層で付与されたヘッダーになります。

まとめ
以上の4層がTCP/IPにおける階層モデルになります。また、OSI参照モデルと言われるモデルにおいては、さらに層が細分化され、下記の7層に分かれているので注意してください。
アプリケーション層
プレゼンテーション層
セッション層
トランスポート層
ネットワーク層
データリンク層
物理層