新手友好大師:5分鐘弄懂tcp

今天我想用一種通俗易懂的方式給非計算機專業的同窗解釋好tcp通信
咋們就先拿現實中的地圖舉例子,首先你們都知道tcp通信中必須嚴格區分,服務器端
和客戶端。
cs架構
當咱們做爲客戶端的時候,咱們要鏈接服務器端,怎麼鏈接呢,咱們首先得找到服務器的位置,在地圖中找位置,是否是就得要用到座標,ip地址就是一臺計算機在網絡地圖中的座標,
ipv4地址
有了這個座標,咱們就能夠將它做爲終點導航過去。
地圖導航可是導航過去又有一個問題了,那麼多人都去那個地方,服務器怎麼知道是否是我呢,因而這時,服務器想出一個辦法,端口號氤氳而生,服務器說,作摩托來的,就是個人客戶端。這裏的摩托,就是端口號。
IP地址加上端口號,成爲咱們所說的套接字,有了這個套接字纔有咱們的socket通信,網絡編程。
套接字
對於計算機系統來講,1到1000的端口號均被用於電腦須要網絡的基礎服務。以下,
0 端口:無效端口,一般用於分析操做系統
1 端口:傳輸控制協議端口服務多路開關選擇器
2 端口:管理實用程序
3 端口:壓縮進程
5 端口:遠程做業登陸
7 端口:回顯
9 端口:丟棄
11 端口:在線用戶
13 端口:時間
17 端口:每日引用
18 端口:消息發送協議
19 端口:字符發生器
20 端口:FTP 文件傳輸協議(默認數據口)
21 端口:FTP 文件傳輸協議(控制)
22 端口:SSH 遠程登陸協議
23 端口:telnet(終端仿真協議),木馬 Tiny Telnet Server 開放此端口
24 端口:預留給我的用郵件系統
25 端口:SMTP 服務器所開放的端口,用於發送郵件
27 端口:NSW 用戶系統 FE
29 端口:MSG ICP
31 端口:MSG 驗證,木馬 Master Paradise、HackersParadise 開放此端口
33 端口:顯示支持協議
35 端口:預留給我的打印機服務
37 端口:時間
38 端口:路由訪問協議
39 端口:資源定位協議
41 端口:圖形
42 端口:主機名服務
43 端口:who is 服務
44 端口:MPM(消息處理模塊)標誌協議
45 端口:消息處理模塊
46 端口:消息處理模塊(默認發送口)
47 端口:NI FTP
48 端口:數碼音頻後臺服務
49 端口:TACACS 登陸主機協議
50 端口:遠程郵件檢查協議
51 端口:IMP(接口信息處理機)邏輯地址維護
52 端口:施樂網絡服務系統時間協議
53 端口:dns 域名服務器
54 端口:施樂網絡服務系統票據交換
55 端口:ISI 圖形語言
56 端口:施樂網絡服務系統驗證
57 端口:預留我的用終端訪問
58 端口:施樂網絡服務系統郵件
59 端口:預留我的文件服務
60 端口:未定義
61 端口:NI 郵件
62 端口:異步通信適配器服務
63 端口:whois++
64 端口:通信接口
65 端口:TACACS 數據庫服務
66 端口:Oracle SQL*NET
67 端口:引導程序協議服務端
68 端口:引導程序協議客戶端
69 端口:小型文件傳輸協議
70 端口:信息檢索協議
71 端口:遠程做業服務
72 端口:遠程做業服務
73 端口:遠程做業服務
74 端口:遠程做業服務
75 端口:預留給我的撥出服務
76 端口:分佈式外部對象存儲
77 端口:預留給我的遠程做業輸入服務
78 端口:修正 TCP
79 端口:查詢遠程主機在線用戶等信息
80 端口:http,用於網頁瀏覽,木馬 Executor 開放此端口
等:
就這樣,咱們找到了服務器,並與它深情握手,互贈禮物,就完成了兩臺設備間的tcp通信。
當咱們做爲服務器端的時候,咱們要作什麼呢,咱們是否是得把咱們的座標,告訴客戶端,這裏還有一點,很是好理解,是否是不少人均可以同時來找你,可是他們若是要跟你互贈禮物,是否是隻找你,因此咱們的服務器能夠被多個客戶端鏈接,可是一個客戶端只能鏈接一臺服務器。咋們把座標告訴客戶端,還得約定一種交通方式把,這人來人往的,好,如今坐飛機的,5555(端口號)是個人客戶端,坐飛機來找到個人,就能夠鏈接我,跟我握手互換禮物。在這裏還得提一下,咱們做爲客戶端,地址座標發出來以後,我不能換個地方吧(更換ip,在網絡地圖上的位置就會更改),那到我原位置的客戶端還能找到我嗎,顯然是不能的,那更加不能跟我互換禮物,這樣就不能做爲一次成功的tcp通信。我也不能睡着了吧(服務器關機),就算它坐飛機到達個人位置,他也發現不了我,也不能正常給我送禮物。
因此說,一次正常的tcp通訊流程須要什麼,首先服務器打開,選擇端口號。
而後客戶端打開,確認服務器的ip,和協商好的端口號,而後就開始導航過去,
找到了服務器端以後,先握3次手(3次握手),這是爲了安全起見,你看如今在疫情期間,出門洗手,回來洗手,這不也是爲了安全嗎。而後便開始互贈禮物(傳輸數據)。握手·
附錄:在實際鏈接過程當中,端口號決定了你的數據發送給對方機器的哪個程序,只有端口號對應,才能在相應程序中接受到數據。騰訊qq的端口號是8000,咱們掛着qq,而後聲明服務器端,端口號8000是不能成功的,會顯示,端口號被佔用,由於一個聯網的程序使用的端口號是惟一的,不能重的。
毒口號佔用
今天就到這,你們好好看看代碼。




















































































數據庫

相關文章
相關標籤/搜索