TCP網絡編程從socket到消息包,發送接收都是bit,傳輸中兩端怎麼知道哪些bit組成一個協議?

MILKLA

“我是喲喲吼說科技,專注於數據網絡的回答,歡迎大家與我交流數據網絡的問題”

socket又稱為套接字,用以TCP建立連接並進行通信時來表示的IP地址加端口號的結構作為連接的端點。

如題,傳輸中的兩端如何知道哪些bit組成的同一個協議?

喲喲認為有兩種方法可以實現,一是通過告知對端每條信息的長度,二是採用特定的分隔符將數據進行分割。

下面喲喲簡單介紹一下兩種方式的實現:

1、固定信息的長度

當數據被分片後,發送端在每次發送數據信息時會在首部裡添加一個字段,用以表示後面內容的長度是多少,在接收端再根據長度進行組合即可;

2、特定的分隔符

通過在數據發送完畢後加入特定的分隔符,表示該數據信息已發送完畢。接收端會通過分隔符來確認數據是否發送完畢,但需要注意的是每條消息中不能包含此分隔符;


喲喲吼說科技

socket 就是把數據,前面寫上目的地,端口號。就像一封信寫上接收地址。然後,數據會被分成標準的長度的數據包,這是tcp/ip協議層,數據包內封裝到達的目的地。物理層傳輸是先傳播一些同步碼,比如101010101010111111111111,連續傳輸數次同步碼。接收端收到同步碼後,發送響應握手信號,開始接收。接收後,根據ip地址,確定接收計算機,把數據包合併成一個大的數據,成功後,接收機會返回應答信號。發送端接到應答信號確認成功。接收機根據端口號分配給計算機指定程序。


分享到:


相關文章: