Web服務(wù)前篇 套接字

傳輸層:提供進(jìn)程地址

tcp:傳輸控制協(xié)議,面向連接的協(xié)議;通信前需要建立虛擬鏈路;結(jié)束后拆除鏈路;主要提供更加可靠的數(shù)據(jù)流通信協(xié)議。

udp:User Datagram Protocol,無(wú)連接的報(bào)文協(xié)議。

0-1023:眾所周知,永久的分配給固定的應(yīng)用使用,特權(quán)端口管理員可以使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

1024-41951:亦為注冊(cè)端口,但要求并不是特別嚴(yán)格,分配給程序注冊(cè)為某應(yīng)用使用,11211/tcp, 11211/udp (memcached), 3306/tcp(mysql)

41952+:客戶端程序隨機(jī)使用的端口;動(dòng)態(tài)端口,或私有端口;其范圍的定義:/proc/sys/net/ipv4/ip_local_port_range


內(nèi)核去真正標(biāo)記一個(gè)能夠跨主機(jī)通過(guò)網(wǎng)絡(luò)進(jìn)行通信的進(jìn)程時(shí)是通過(guò)套接字實(shí)現(xiàn)的。

Socket:IPC的一種實(shí)現(xiàn),允許位于不同主機(jī)(甚至同一主機(jī))上不同進(jìn)程之間進(jìn)行通信;數(shù)據(jù)交換;

SOCK_STREAM:tcp套接字,流式套接字。

SOCK_DGRAM:udp套接字。

SOCK_RAW: 裸套接字,直接調(diào)用api地址,通過(guò)ip 報(bào)文封裝應(yīng)用。

當(dāng)兩個(gè)主機(jī)直接進(jìn)行通信時(shí),所謂同層之間有協(xié)議,不同層之間,上層利用下層接口的服務(wù),下層接口向上層接口提供服務(wù),化整為零的把一個(gè)較大的分解成各個(gè)小問(wèn)題各個(gè)解決,最終把他們拼湊起來(lái)實(shí)現(xiàn)模塊化設(shè)計(jì)。任何一個(gè)層次出現(xiàn)問(wèn)題,都可以把替換或升級(jí),而不用遷一發(fā)而動(dòng)全身。


IP 報(bào)文最大不能超過(guò)MTU(最大傳輸單元,通常為1500字節(jié))的大小,LAN 層的封裝,包括源目標(biāo)MAC地址和目標(biāo)MAC地址。

服務(wù)器上預(yù)先啟動(dòng)web服務(wù),也就是向內(nèi)核注冊(cè)某個(gè)端口,客戶端需要進(jìn)行通信時(shí),利用瀏覽器進(jìn)程(雙方打開(kāi)一組套接字,服務(wù)器端80端口,客戶端使用隨機(jī)的端口)


TCP協(xié)議的特性:需要事先建立虛擬鏈路

建立連接:三次握手

將數(shù)據(jù)打包成段:每一個(gè)段有一個(gè)校驗(yàn)和(CRC-32)循環(huán)冗余較驗(yàn)算法

確認(rèn)、重傳以及超時(shí):

排序:邏輯序號(hào)

流量控制:滑動(dòng)窗口算法

擁塞控制:慢啟動(dòng)和擁塞避免算法



套接字相關(guān)的系統(tǒng)調(diào)用:

socket(): 創(chuàng)建一個(gè)套接字;

bind():綁定

listen():監(jiān)聽(tīng)

accept():接收請(qǐng)求

connect():請(qǐng)求連接建立

write():發(fā)送

read():接收

send(), recv(), sendto(), recvfrom()


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一: 網(wǎng)絡(luò)各個(gè)協(xié)議:TCP/IP、SOCKET、HTTP 網(wǎng)絡(luò)七層由下往上分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層...
    iYeso閱讀 1,510評(píng)論 0 13
  • 網(wǎng)絡(luò)編程 一.楔子 你現(xiàn)在已經(jīng)學(xué)會(huì)了寫(xiě)python代碼,假如你寫(xiě)了兩個(gè)python文件a.py和b.py,分別去運(yùn)...
    go以恒閱讀 2,248評(píng)論 0 6
  • 運(yùn)輸層協(xié)議概述 從通信和信息處理的角度看,運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是...
    srtianxia閱讀 2,767評(píng)論 0 2
  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,195評(píng)論 0 8
  • 協(xié)議的定義:在兩個(gè)或多個(gè)通信實(shí)體間所交換消息的格式和順序,及發(fā)出/或收到一個(gè)消息或者其他事件時(shí)應(yīng)該采取的行動(dòng)。 協(xié)...
    BEYOND黃閱讀 911評(píng)論 0 1

友情鏈接更多精彩內(nèi)容