最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

傳輸模型和套接字

2022-08-08 16:12 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

傳輸模型:

1、傳輸模型

基本模型:

2、TCP協(xié)議

OSI七層模型


先有模型,再有協(xié)議

TCP/IP四層模型:先有協(xié)議和應(yīng)用,再有模型 TCP:傳輸控制協(xié)議,先和目標(biāo)建立連接,再傳輸數(shù)據(jù) 相當(dāng)于打電話(huà) UDP:用戶(hù)數(shù)據(jù)報(bào)協(xié)議,直接傳輸數(shù)據(jù),目標(biāo)地址在報(bào)文里面

TCP建立連接:三次握手



怎么連接的?為什么要三次? 客戶(hù)端:我要連接你 服務(wù)端:好的,我準(zhǔn)備好了 客戶(hù)端:我建立連接了 三次保證同步,例如因?yàn)榫W(wǎng)絡(luò)延遲導(dǎo)致兩邊收到消息延后,發(fā)出的報(bào)文就可能收不到或者不知道是誰(shuí)的。


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個(gè)人覺(jué)得比較好的學(xué)習(xí)書(shū)籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書(shū)、實(shí)戰(zhàn)項(xiàng)目及代碼)? ?

斷開(kāi)連接:四次揮手




客戶(hù)端:我要關(guān)閉連接了 服務(wù)端:好的,等一下 服務(wù)端:我的數(shù)據(jù)都給你了,我要斷開(kāi)了 客戶(hù)端:好的,我斷開(kāi)了

為什么多了一次: 因?yàn)榉?wù)端可能還數(shù)據(jù)要發(fā)

到底是一次連接傳一次數(shù)據(jù) 還是一次連接傳多次數(shù)據(jù) 都可以 HTTP協(xié)議 前著 請(qǐng)求一次,響應(yīng)一次 Websocket 后者 服務(wù)端有新的消息就會(huì)發(fā)給建立連接的客戶(hù)端

3、IP地址和端口




不同主機(jī)之間通信,先用ip確定某個(gè)主機(jī),再用端口確定某一個(gè)應(yīng)用程序。

除了一些服務(wù)占用的端口外,其他端口由操作系統(tǒng)分配,總共65535端口 127.0.0.1 自己的主機(jī)地址 0.0.0.0 任意的主機(jī)地址

套接字:

1.創(chuàng)建套接字實(shí)例

fd:正整型數(shù)據(jù),文件描述符(唯一標(biāo)識(shí)了一個(gè)socket)

domain:(域) AF_INET     ipv4

AF_INET6    ipv6

type:(套接字類(lèi)型): SOCK_RAW     原始套接字    ——>使用原始套接字時(shí)候調(diào)用,原始套接字也就是鏈路層協(xié)議

SOCK_STREAM   字節(jié)流套接字   ——>提供順序,可靠,雙向,基于連接的字節(jié)流。 可以支持帶外數(shù)據(jù)傳輸機(jī)制。例如:TCP協(xié)議、FTP協(xié)議

SOCK_DGRAM 數(shù)據(jù)報(bào)套接字   ——>支持?jǐn)?shù)據(jù)報(bào)(無(wú)連接,不可靠的固定最大長(zhǎng)度的消息)例如:UDP協(xié)議

SOCK_SEQPACKET 有序分組套接字 ——>為固定最大長(zhǎng)度的數(shù)據(jù)報(bào)提供有序,可靠,雙向連接的數(shù)據(jù)傳輸路徑; 消費(fèi)者需要利用每個(gè)輸入系統(tǒng)調(diào)用讀取整個(gè)分組

protocol(協(xié)議):

IPPROTO_IP     IP傳輸協(xié)議

IPPROTO_TCP    TCP傳輸協(xié)議

IPPROTO_UDP   UDP協(xié)議

IPPROTO_SCTP   SCTP傳輸協(xié)議

IPPROTO_ICMP ICMP協(xié)議

IPPROTO_IGMP   IGMP協(xié)議

一般情況下IPPROTO_TCP、IPPROTO_UDP、IPPROTO_ICMP協(xié)議用的最多,UDP協(xié)議protocol就取IPPROTO_UDP,TCP協(xié)議protocol就取IPPROTO_TCP;一般情況下,我們讓protocol等于0就可以,系統(tǒng)會(huì)給它默認(rèn)的協(xié)議。但是要是使用raw socket協(xié)議,protocol就不能簡(jiǎn)單設(shè)為0,要與type參數(shù)匹配.

三種套接字服務(wù)端套接字: 1、監(jiān)聽(tīng)套接字(相當(dāng)于前臺(tái),把你分配給連接套接字之后,繼續(xù)監(jiān)聽(tīng)。如果一次連接過(guò)多,處理不過(guò)來(lái)的會(huì)掛起) 2、連接套接字(相當(dāng)于和你交流的人) 客戶(hù)端套接字

2.建立連接

服務(wù)端的端口不能由操作系統(tǒng)分配(一般是固定的,讓客戶(hù)端知道要請(qǐng)求哪個(gè)端口) 服務(wù)端套接字的綁定和監(jiān)聽(tīng)

客戶(hù)端套接字

laddr表示本地地址,raddr表示遠(yuǎn)程連接的地址 對(duì)于客戶(hù)端來(lái)說(shuō) laddr是客戶(hù)端ip + 操作系統(tǒng)分配的任意端口,raddr是服務(wù)端的ip+綁定的端口 對(duì)于服務(wù)端來(lái)說(shuō) laddr是服務(wù)端的IP + 綁定的端口,raddr是客戶(hù)端的IP+客戶(hù)端系統(tǒng)分配的端口

3.發(fā)送接受消息

4.斷開(kāi)連接


傳輸模型和套接字的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
通渭县| 武鸣县| 乐至县| 东城区| 娱乐| 安泽县| 南皮县| 秀山| 和平县| 无极县| 金秀| 五大连池市| 东源县| 延长县| 南漳县| 盘山县| 噶尔县| 辽源市| 中江县| 遂昌县| 武安市| 梨树县| 襄樊市| 东兰县| 双江| 黑河市| 平湖市| 涞水县| 阿拉善盟| 汉中市| 休宁县| 连南| 仁怀市| 微博| 育儿| 会宁县| 乡宁县| 四川省| 祁阳县| 兖州市| 恩平市|