9.1.2 TCP/IP
Transmission Control Protocol/Internet Protocol; 1. TCP/IP协议介绍 TCP/IP(又称TCP/IP协议簇)是一组用于实现网络互连的通信协议,其名称来源于该协议簇中两个重要的协议(IP协议和TCP协议)。基于TCP/IP的参考模型将协议分成四个层次,它们分别是网络
Transmission Control Protocol/Internet Protocol;
1. TCP/IP协议介绍
TCP/IP(又称TCP/IP协议簇)是一组用于实现网络互连的通信协议,其名称来源于该协议簇中两个重要的协议(IP协议和TCP协议)。基于TCP/IP的参考模型将协议分成四个层次,它们分别是网络接口层、网际互连层(IP层)、传输层(TCP层)和应用层。图17-4画出了TCP/IP模型以及该模型与OSI模型各层的对照关系。
图17-4 OSI模型与TCP/IP模型对照图
① 网络接口层:网络接口层与OSI参考模型中的物理层和数据链路层相对应。
② 网际互联层:网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。该层有四个主要协议:网际协议(IP)、地址解析协议(ARP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。IP协议是网际互联层最重要的协议,它提供的是一个不可靠、无连接的数据报传递服务。
③ 传输层:传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP协议提供的是一种可靠的、面向连接的数据传输服务;而UDP协议供的是不可靠的、无连接的数据传输服务。
④ 应用层:应用层对应于OSI参考模型的会话层、表示层和应用层,为用户提供所需要的各种服务,例如FTP、Telnet、DNS、SMTP等。
2. OSI模型与TCP/IP模型比较说明
(1)OSI模型与TCP/IP模型比较说明
OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。OSI太复杂,TCP/IP简单却并不全面。OSI花了很长时间进行标准化,与此同时,TCP/IP已被广泛使用,已成为网络互联事实上的标准。
(2)OSI模型与TCP/IP模型
表17-1列出了OSI模型与TCP/IP模型的协议对照及协议说明。
表17-1 OSI模型与TCP/IP模型协议对照表
OSI中的层 |
功能 |
TCP/IP协议簇 |
应用层 |
文件传输,电子邮件,文件服务,虚拟终端 |
TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet |
表示层 |
数据格式化,代码转换,数据加密 |
没有协议 |
会话层 |
解除或建立与别的接点的联系 |
没有协议 |
传输层 |
提供端对端的接口 |
TCP、UDP |
网络层 |
为数据包选择路由 |
IP、ICMP、OSPF、BGP、IGMP 、ARP、RARP |
数据链路层 |
传输有地址的帧以及错误检测功能 |
SLIP、PPP、MTU |
物理层 |
以二进制数据形式在物理媒体上传输数据 |
ISO2110、IEEE802、IEEE802.2 |
3. TCP/IP通信过程图
下图17-5画出了两台主机通过TCP/IP协议的通信过程,其中应用层使用的是FTP协议。除物理层是实际传输数据的,其他对等层只是虚拟通信(所以画的是虚线),对等层一般需要遵照相同的协议。上层传输数据只与相邻上下层有关系。TCP及以下层是由操作系统内核实现,是处理通信细节。而应用层程序是通过socket编程实现的,处理的是应用程序细节。
图17-5 TCP/IP通信过程图
4. TCP/IP数据包
TCP/IP数据包说明如图17-6所示。IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输。
图17-6 TCP/IP数据包说明图
摘录自《深入浅出Linux工具与编程》

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









win10でtcp/ipプロトコルをリセットするにはどうすればよいですか?実際、その方法は非常に簡単で、ユーザーがコマンド プロンプトに直接入力し、ctrl Shift Enter キーの組み合わせを押して操作を実行するか、reset コマンドを直接実行して設定することができます。 Windows 10 で TCP/IP プロトコル スタックをリセットする方法をユーザーに注意深く紹介します。 Windows 10 で tcp/ip プロトコル スタックをリセットする方法 1。 管理者権限 1. ショートカット キー win R を使用してファイル名を指定して実行ウィンドウを直接開き、「cmd」と入力し、ctrl Shift Enter キーの組み合わせを押し続けます。 2. または、スタート メニューでコマンド プロンプトを直接検索し、右クリックします。

TCP クライアント TCP プロトコルを使用して継続的な対話を実現するクライアントのサンプル コード: importsocket#クライアント設定 HOST='localhost'PORT=12345#TCP ソケットを作成し、サーバーに接続 client_socket=socket.socket(socket.AF_INET,socket . SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#ユーザー入力を取得 message=input("送信するメッセージを入力してください:&

TCP は、コンピュータ ネットワーク通信プロトコルの一種であり、コネクション型の伝送プロトコルです。 Javaアプリケーション開発において、TCP通信はクライアントとサーバー間のデータ送信、音声や映像のリアルタイム送信など、さまざまなシーンで広く利用されています。 Netty4 は、サーバーとクライアント間のデータ交換プロセスを最適化し、効率性と信頼性を高めることができる、高性能、拡張性の高いネットワーク プログラミング フレームワークです。 TCP 通信に Netty4 を使用する具体的な実装手順は次のとおりです。

ここで言う「コネクション指向」とは、コネクションを確立し、コネクションを利用し、コネクションを解放する必要があることを意味します。接続の確立とは、よく知られている TCP スリーウェイ ハンドシェイクを指します。接続を使用する場合、データは 1 回の送信と 1 回の確認の形式で送信されます。また、一般的な TCP 4 波である接続の解放もあります。

以下では、説明の便宜上、TCPの通信当事者のうち、通信当事者をA、Bに置き換えて説明する。 TCP プロトコルによれば、A が接続を閉じた後も B がデータを送信し続けると、B は A の RST 応答を受信します。 B がデータの送信を続ける場合、システムは SIGPIPE 信号を送信して、接続が切断されたことを通知し、送信を停止します。 SIGPIPE シグナルに対するシステムのデフォルトの処理動作は、プロセス B を終了させることです。 SIGPIPE 信号に対するオペレーティング システムのデフォルトの処理動作は非常に不親切です。これを分析してみましょう。 TCP 通信は全二重チャネルであり、2 つの単信チャネルに相当し、接続の各端が 1 つのチャネルを担当します。反対側が「閉じる」場合、2 つのチャネル全体を閉じることが意図されていますが、ローカル エンドは FIN パケットのみを受信します。 TCP プロトコルの規定に従って、

1 つの TCP 接続を使用して複数のファイルを送信することについてこのブログが書かれているのはなぜですか?最近関連の本を読んでいるのですが、単に Socket を使ってプログラミングするのは問題ありませんが、これはいくつかの基本的な概念を確立するだけです。本当の問題に対してはまだ何もできません。ファイルを転送する必要がある場合、データ (バイナリ データ) を送信しただけのように見えますが、ファイルに関する一部の情報 (ファイル拡張子) が失われていることがわかります。そして、毎回 1 つのファイルを送信するために 1 つのソケットしか使用できないため、連続してファイルを送信する方法はありません (ファイルの送信を完了するにはストリームを閉じることに依存しているため、実際にはファイルの長さがわかりません。したがって、1 つのソケット接続がファイルを表す場合にのみファイルを送信できます)。

TCP と IP はインターネットにおける 2 つの異なるプロトコルです: 1. TCP はトランスポート層プロトコル、IP はネットワーク層プロトコル; 2. TCP はデータ パケットのセグメント化、並べ替え、確認、再送信などの機能を提供します。プロトコルはデータ パケットの送信元アドレスと宛先アドレスを提供する役割を果たします; 3. TCP は接続指向のプロトコルですが、IP プロトコルはコネクションレスです; 4. TCP はフロー制御と輻輳制御も提供します。

かつて、面接でよくある質問で、「ブラウザに URL が入力されてからページが表示されるまでの過程で何が起こっていますか?」という質問がありました。予習をした学生ならほとんど答えられると思いますが、「受信したHTMLに数十個の画像タグが含まれている場合、どのような方法で、どのような順序で、どれだけの接続が確立され、どのようなプロトコルでダウンロードされるのか」と続けて尋ねると、これらの画像はどうでしょうか?
