はじめに:
TCP / IPプロトコル・スイートは、主に2つのトランスポートプロトコル、TCP(Transimission制御プロトコル、伝送制御プロトコル)とUDP(ユーザーデータグラムプロトコル、ユーザデータグラムプロトコル)を持っています
A:TCPプロトコルの説明
TCPは通信プロトコルを処理するために、接続指向の、信頼性の高いプロセスです。
TCPは、全二重サービス、同時にデータの、すなわち、双方向伝送を提供し、各TCP送信バッファと、データを一時的に記憶するための受信バッファを有しています。
2:TCPパケットフォーマット
2.1TCPセグメント
TCPパケットのバイトの複数のセグメントとなっています。
IPデータグラムにカプセル化されたTCPセグメント。
2.2TCPセグメント形式
送信元ポート番号:16ビットのフィールドは、プロセスに対応する送信元ポート番号。
宛先ポート番号:16ビットフィールド、受信機がデータを受信した後、プロセスの受信端に対応するアプリケーションプロセスに正しいデータを決定するポート番号に応じました。
IDは:TCPプロセスからデータバイトを受信すると、送信バッファに格納され、各バイト数のためにそれらを置きます。
いいえ確認:確認応答番号は、エンドプロファイルに送信されません。この数は、受信された前のデータセグメントの送信者に伝えるためにそれを使用してください。確認応答番号はX、X-1は前のデータセグメントが受信されたことを意味しています。
ヘッダ長:一般に20バイト、最大60バイトに拡張することができます。データ構造のヘッダ部分のバイト長を決定するために使用することができます。
予約:将来の拡張を使用するために、そこに使用されていません。
制御ビット:6つの役割が非常に重要であり、TCP接続、送信および切断は、6つの制御ビットのコマンドの対象となっています。私たちは、以下の意味を有します。
URG:緊急ポインタ有効ビット。唯一の0と1は、ポインタが上であることを示します。データ伝送、キャッシュ(メモリ)内の最初の一時保存、緊急ポインタ・ビットは、優先メモリ内のデータを抽出することを指します。
PSH:フラグは、できるだけ早く1 =必要な受信者サービスアプリケーション層データセグメントビット。即ちPSH = 1、キャッシュせずに、データセグメントは直接アプリケーション層に達します。URGよりも高い優先順位。
<U> ACK </ U>:ビットを認めます。シーケンス番号を確認するACK = 1は、場合にのみ有効です。ACK = 0、確認応答シーケンス番号フィールドは無効であるとき。
<U> SYN </ U>:付着部位。同期ビットシーケンス番号、TCPが接続されている場合、この値が1に設定されている確立する必要があります。
<u>FIN</u>:断开连接标识。发送端完成发送任务位,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设置为1.
RST:重新建立连接TCP连接时使用。,当RST=1时,通知重新建立TCP连接。
窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。当网络通畅是窗口值变大可以加快传输速度,当网络不稳定时减小这个值可以保证网络数据的可靠传输。TCP协议中的流量控制机制就是依靠变化窗口值的大小实现的。
校验和:用来做差错控制。在发送TCP数据段时,由发送端计算校验和,到达目的地时再进行一次校验和计算。若两次校验和一致,则说明数据基本是正确的,否则将认为数据已被破坏,接收端将丢弃数据。
紧急指针:和URG配合使用,当URG=1时有效。
选项:在TCP首部可以有多达40字节的可选信息。
三:TCP连接--三次握手
3.1第一次握手
建立连接过程:PC1发送建立连接请求,SYN标志位设为1.
3.2第二次握手
这一次握手实际上分为两部分来完成。
第一部分:PC2收到PC1的请求,向PC1回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1。且确认序列号是PC1的初始序列号加1.
第二部分:PC2收到请求后需要回复。即PC2也向PC1发送建立连接的请求,此过程的典型标志和第一次握手一样,即TCP的SYN控制位为1.
为了提高效率,一般将这里两个部分合并在一个数据包里实现。
3.3第三次握手
PC1收到了PC2的回复(包含请求和确认),此时需要向PC2回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1.且确认序列号是PC2的初始序列号加1.
此时就完成了三次握手
3.4总结
上图中
Seq表示请求序列号。
Ack表示确认序列号
SYN控制位只有在请求建立连接时才被设为1.
四:TCP四次挥手
参加数据交换的双方中的任何一方(客户和服务器)都可以关闭连接。TCP断开连接分四步,也称为四次挥手。
4.1第一次挥手
PC1发送 FIN 和 ACK 控制位为1的TCP报文段给PC2.
FIN:断开连接标识,提出断开连接的一方将这个值设为1.
ACK:ACK=1,表示确认序列号字段有效。
4.2第二次挥手
PC2收到PC1的信息,开始回复。
PC2 回复 ACK=1 的 TCP 报文段给 PC1。
4.3第三次挥手
PC2现在开始主动发送消息给PC1,发送 FIN=1,ACK=1 的报文段给PC1.
即PC2也发消息给PC1,FIN=1,我(也)要和你断开连接。ACK=1,确认序列号字段有效。
4.4第四次挥手
PC1收到 PC2 的消息,回复ACK=1 的TCP报文段。
ACK=1,确认PC2 发给 PC1 的序列号字段有效。
4.5半关闭
在TCP断开连接(四次挥手)的过程中,TCP一方(通常是客户端)可以终止发送数据,但仍然可以接收数据,成为半关闭。
具体描述一下:
1.客户端发哦是那个FIN报文段,半关闭了这个连接,服务器发送ACK报文段接收半关闭。
2.服务器继续发送数据,而客户端只发送ACK确认,不再发送任何数据。
3.当服务器吧所有数据都发送完毕时,就发送FIN报文段,客户再发送ACK报文段,这样就关闭了TCP连接。
五:DUP协议介绍
5.1UDP协议
UDP缺点:是一个无连接,不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否达到目标主机,数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。
UDP优点:UDP的首部结构简单,在数据传输时能实现最小的开销。
5.2UDP报文的首部格式
UDP在实际工作中的应用范围很广,例如,聊天工具QQ在发送短消息时就使用了UDP的方式。
5.3UDP协议端口和功能
TFTP:简单文件传输协议,速度快。
RPC::远程过程调用。同步传输数据的时候会用到。
NTP:比如做网络架构时,100台机器实现数据同步传输,就需要用到网络时间协议。
六:常见协议及其端口
FTP:文件服务器,方便文件的上传和下载。
TELNET:采用明文发送,建议在局域网中使用,不建议在广域网中使用。
SMTP:发送邮件的协议
POP3:收邮件的协议
HTTP:Webサイトで使用されるオープンプロトコル