Socket編程(網絡協(xié)議一)

“我們在傳輸數(shù)據(jù)時,可以只使用(傳輸層)TCP/IP協(xié)議蝌衔,但是那樣的話蝌蹂,如果沒有應用層孤个,便無法識別數(shù)據(jù)內容“

TCP/IP只是一個協(xié)議棧,就像程序運行一樣硅急,必須要實現(xiàn)運行,同時還要提供對外的操作接口

網絡從下往上分為

物理層营袜、數(shù)據(jù)鏈路層荚板、網絡層、傳輸層拧抖、會話層免绿、表示層和應用層。IP協(xié)議對應于網絡層淌哟,TCP協(xié)議對應于傳輸層辽故,而HTTP協(xié)議對應于應用層,

應用層協(xié)議有很多掉弛,比如HTTP喂走、FTP缴啡、TELNET等,也可以自己定義應用層協(xié)議秒咐。

通過Socket碘裕,我們才能使用TCP/IP協(xié)議;實際上雷滋,Socket跟TCP/IP協(xié)議沒有必然的聯(lián)系。

Socket編程接口在設計的時候焕檬,希望也能適應其他的網絡協(xié)議澳泵。

所以說兔辅,Socket的出現(xiàn)只是使得程序員方便地使用TCP/IP協(xié)議,是對TCP/IP協(xié)議的抽象碰辅,從而形成了一些基本的函數(shù)接口介时,比如create、listen榕吼、connect勉失、accept乱凿、send咽弦、read和write等等。

實際上段审,傳輸層的TCP是基于網絡層的IP協(xié)議的闹蒜,而應用層的HTTP協(xié)議又是基于傳輸層的TCP協(xié)議的绷落,而Socket本身不算是協(xié)議,就像上面所說筐喳,它只是提供了一個針對TCP或者UDP編程的接口。

一荣月、什么是TCP連接的三次握手

第一次握手:客戶端發(fā)送syn包(synchronous 同步的梳毙; s??kr?n?s,syn=j)到服務器,并進入SYN_SEND狀態(tài)堂氯,等待服務器確認;

第二次握手:服務器收到syn包牌废,必須確認客戶的SYN(ack=j+1)鸟缕,同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包授段,此時服務器進入SYN_RECV狀態(tài);

第三次握手:客戶端收到服務器的SYN+ACK包番甩,向服務器發(fā)送確認包ACK(ack=k+1)缘薛,此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED狀態(tài)漱抓,完成三次握手恕齐。

握手過程中傳送的包里不包含數(shù)據(jù)乞娄,三次握手完畢后,客戶端與服務器才正式開始傳送數(shù)據(jù)显歧。

理想狀態(tài)下仪或,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前追迟,TCP 連接都將被一直保持下去溶其。

服務器和客戶端均可以主動發(fā)起斷開TCP連接請求,斷開過程需要經過“四次握手”敦间,最終確定斷開瓶逃。

二束铭、利用Socket建立網絡連接的步驟

建立Socket連接至少需要一對套接字,其中一個運行于客戶端厢绝,稱為ClientSocket,另一個運行于服務器端昔汉,稱為ServerSocket 懈万。

套接字之間的連接過程分為三個步驟:服務器監(jiān)聽,客戶端請求靶病,連接確認会通。

1、服務器監(jiān)聽:服務器端套接字并不定位具體的客戶端套接字娄周,而是處于等待連接的狀態(tài)涕侈,實時監(jiān)控網絡狀態(tài),等待客戶端的連接請求煤辨。

2裳涛、客戶端請求:指客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字众辨。

為此端三,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號鹃彻,然后就向服務器端套接字提出連接請求郊闯。

3、連接確認:當服務器端套接字監(jiān)聽到/接收到客戶端套接字的連接請求時浮声,就響應客戶端套接字的請求虚婿,建立一個新的線程旋奢,把服務器端套接字的描述發(fā)給客戶端泳挥,一旦客戶端確認了此描述,雙方就正式建立連接至朗。

而服務器端套接字繼續(xù)處于監(jiān)聽狀態(tài)屉符,繼續(xù)接收其他客戶端套接字的連接請求。

三锹引、HTTP鏈接的特點

HTTP協(xié)議即超文本傳送協(xié)議(Hypertext Transfer Protocol)矗钟,是Web聯(lián)網的基礎,也是手機聯(lián)網常用的協(xié)議之一嫌变,HTTP協(xié)議是建立在TCP協(xié)議之上的一種應用吨艇。

HTTP連接最顯著的特點是客戶端發(fā)送的每次請求都需要服務器回送響應,在請求結束后腾啥,會主動釋放連接东涡。從建立連接到關閉連接的過程稱為“一次連接”冯吓。

四、TCP和UDP的區(qū)別

1疮跑、TCP是面向鏈接的组贺,雖然說網絡的不安全不穩(wěn)定特性決定了多少次握手都不能保證連接的可靠性,但TCP的三次握手在最低限度上(實際上也很大程度上保證了)保證了連接的可靠性;

而UDP不是面向連接的祖娘,UDP傳送數(shù)據(jù)前并不與接收方建立連接失尖,接收方也不發(fā)送確認信號,發(fā)送端不知道數(shù)據(jù)是否會正確接收渐苏,也不重發(fā)掀潮,所以說UDP是無連接的、不可靠的一種數(shù)據(jù)傳輸協(xié)議琼富。

2胧辽、由1描述的特點,使得UDP的開銷更小公黑、數(shù)據(jù)傳輸速率更高邑商,因為不必進行收發(fā)數(shù)據(jù)的確認,所以UDP的實時性更好凡蚜。

知道了TCP和UDP的區(qū)別人断,就不難理解為何采用TCP傳輸協(xié)議的MSN比采用UDP的QQ傳輸文件慢了,但并不能說QQ的通信是不安全的朝蜘,

因為程序員可以手動對UDP的數(shù)據(jù)收發(fā)進行驗證恶迈,比如發(fā)送方對每個數(shù)據(jù)包進行編號然后由接收方進行驗證。

著作權歸作者所有谱醇。商業(yè)轉載請聯(lián)系作者獲得授權暇仲,非商業(yè)轉載請注明出處「笨剩互聯(lián)網+時代奈附,時刻要保持學習,攜手千鋒PHP,Dream ItPossible煮剧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末斥滤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子勉盅,更是在濱河造成了極大的恐慌佑颇,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件草娜,死亡現(xiàn)場離奇詭異挑胸,居然都是意外死亡,警方通過查閱死者的電腦和手機宰闰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門茬贵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凸克,“玉大人,你說我怎么就攤上這事闷沥∥剑” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵舆逃,是天一觀的道長蚂维。 經常有香客問我,道長路狮,這世上最難降的妖魔是什么虫啥? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮奄妨,結果婚禮上涂籽,老公的妹妹穿的比我還像新娘。我一直安慰自己砸抛,他們只是感情好评雌,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著直焙,像睡著了一般景东。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奔誓,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天斤吐,我揣著相機與錄音,去河邊找鬼厨喂。 笑死和措,一個胖子當著我的面吹牛,可吹牛的內容都是我干的蜕煌。 我是一名探鬼主播派阱,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼幌绍!你這毒婦竟也來了颁褂?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤傀广,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后彩届,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伪冰,經...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年樟蠕,在試婚紗的時候發(fā)現(xiàn)自己被綠了贮聂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靠柑。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吓懈,靈堂內的尸體忽然破棺而出歼冰,到底是詐尸還是另有隱情,我是刑警寧澤耻警,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布隔嫡,位于F島的核電站,受9級特大地震影響甘穿,放射性物質發(fā)生泄漏腮恩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一温兼、第九天 我趴在偏房一處隱蔽的房頂上張望秸滴。 院中可真熱鬧,春花似錦募判、人聲如沸荡含。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽内颗。三九已至,卻和暖如春敦腔,著一層夾襖步出監(jiān)牢的瞬間均澳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工符衔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留找前,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓判族,卻偏偏與公主長得像躺盛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子形帮,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內容