TCP/IP編程基本知識(shí)

TCP/IP編程基本知識(shí)

[TOC]

網(wǎng)絡(luò)定義

TCP協(xié)議分為兩個(gè)不同的協(xié)議

TCP:用來(lái)檢測(cè)網(wǎng)絡(luò)傳輸中差錯(cuò)的傳輸控制協(xié)議
IP:專(zhuān)門(mén)負(fù)責(zé)對(duì)不同網(wǎng)絡(luò)進(jìn)行互聯(lián)都的互聯(lián)網(wǎng)協(xié)議

分層思想

每一層實(shí)現(xiàn)不同的功能般哼,對(duì)上層的數(shù)據(jù)做同名傳輸

OSI模型

七層

應(yīng)用層
    各種應(yīng)用程序協(xié)議:HTTP、FTP恢氯、SMTP娃承、POP3
表示層
    信息的語(yǔ)法語(yǔ)義以及他們的關(guān)聯(lián)予弧,如加密解密昆淡、轉(zhuǎn)換翻譯嚼吞、壓縮解壓縮
會(huì)話層
    不同機(jī)器上的用戶之間建立及管理回話
傳輸層
    接受上一層的數(shù)據(jù)盒件,在必要的時(shí)候把數(shù)據(jù)進(jìn)行分割,并將這些數(shù)據(jù)交給網(wǎng)絡(luò)層并且保證這些數(shù)據(jù)段有效到達(dá)對(duì)端舱禽。
網(wǎng)絡(luò)層
    控制子網(wǎng)的運(yùn)行炒刁,如邏輯編制、分組傳輸誊稚、路由選擇
數(shù)據(jù)鏈路層
    物理尋址翔始,同事將原始比特流轉(zhuǎn)變?yōu)榱_技傳輸線路
物理層
    機(jī)械、電子里伯、電視接口通信信道上原始比特流傳輸

四層

應(yīng)用層
    Telnet城瞎,F(xiàn)TP,HTTP疾瓮,DNS脖镀,SMTP
傳輸層
    TCP和UDP
網(wǎng)絡(luò)層
    IP,ICMP狼电,IGMP
網(wǎng)絡(luò)接口和物理層
    以太網(wǎng)蜒灰,令牌環(huán)網(wǎng),F(xiàn)DDI

協(xié)議解釋

網(wǎng)絡(luò)接口與物理層
    MAC地址:48位全球唯一肩碟,網(wǎng)絡(luò)設(shè)備的身份標(biāo)識(shí)
    ARP/RARP:
        ARP:地址解析協(xié)議强窖,IP地址解析成MAC地址
        RARP:MAC地址解析成IP地址
    PPP協(xié)議
        撥號(hào)協(xié)議(GPRS/3G/4G),從有線發(fā)展成無(wú)線
網(wǎng)絡(luò)層
    IP協(xié)議:身為IPV4和IPV6協(xié)議
    ICMP:Internet控制管理協(xié)議削祈,ping命令屬于ICMP
    IGMP:Internet分組管理協(xié)議翅溺,廣播、組播
傳輸層
    TCP:傳輸控制協(xié)議髓抑,提供面相連接的咙崎,一對(duì)一的可靠數(shù)據(jù)傳輸協(xié)議(即數(shù)據(jù)無(wú)誤、數(shù)據(jù)無(wú)丟失吨拍、數(shù)據(jù)無(wú)失序叙凡,數(shù)據(jù)無(wú)重復(fù))
    UDP:用戶數(shù)據(jù)報(bào)協(xié)議,提供不可靠密末,無(wú)連接的盡力傳輸協(xié)議(實(shí)時(shí)性好于TCP握爷,不需要進(jìn)行連接跛璧,可以進(jìn)行高效率的數(shù)據(jù)傳輸)
    SCTP:流控制傳輸協(xié)議,TCP增強(qiáng)版新啼,能實(shí)現(xiàn)多主機(jī)追城、多鏈路的通信
應(yīng)用層
    網(wǎng)頁(yè)訪問(wèn)協(xié)議:HTTP/HTTPS
    郵件發(fā)送接收協(xié)議:POP3(收)/SMTP(發(fā))、IMAP
    文件傳輸:FTP
    遠(yuǎn)程登錄:Telnet/SSH
        Telnet:明文傳輸
        SSH:加密傳輸
    嵌入式相關(guān)
        網(wǎng)絡(luò)時(shí)鐘協(xié)議:NTP
        簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)設(shè)備集中式管理):SNMP
        用傳輸音視頻的協(xié)議(安防監(jiān)控):RTP/RTSP(基于TCP與UDP共通實(shí)現(xiàn))

編程

socket編程

Socket是一個(gè)應(yīng)用編程接口
    是一種特特殊的文件描述符(可執(zhí)行IO操作燥撞,比如read()座柱,write(),close())
不僅限于TCP/IP
    面向鏈接(TCP/IP)    
    無(wú)鏈接(UDP物舒,IPX)
代表網(wǎng)絡(luò)的一種資源

Socket類(lèi)型

流式套接字
    唯一對(duì)應(yīng)TCP
    提供一個(gè)面向鏈接色洞,可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)誤差錯(cuò)冠胯,無(wú)重復(fù)火诸,且按發(fā)送數(shù)據(jù)接收。內(nèi)設(shè)置流量控制荠察,避免數(shù)據(jù)流淹沒(méi)慢的接收方置蜀。數(shù)據(jù)被看作時(shí)字流,無(wú)長(zhǎng)度限制
數(shù)據(jù)報(bào)套接字
    唯一對(duì)應(yīng)UDP
    提供五連接服務(wù)悉盆,數(shù)據(jù)包已獨(dú)立數(shù)據(jù)包的形式被發(fā)送盯荤,不提供無(wú)差錯(cuò)保證數(shù)據(jù)可能丟失或重復(fù),順序發(fā)送焕盟,可能亂序接收秋秤。
原始套接字
    對(duì)應(yīng)多個(gè)協(xié)議,發(fā)送穿透了傳輸層
    可以對(duì)較低層次協(xié)議直接訪問(wèn)脚翘,如IP/ICMP

IP地址

分類(lèi)
    IPV4:采用32位整數(shù)表示
    IPV6:采用128位整數(shù)表示
    mobileIPV6:local IP-本地注冊(cè)的IP灼卢,roam IP-漫游IP
IPV4
    形式
        點(diǎn)分形式:192.168.1.201
        32位整數(shù)形式
    特殊IP地址
        局域網(wǎng):192.XXX.XXX.XXX;10.XXX.XXX.XXX
        廣播IP:xxx.xxx.xxx.255堰怨;255.255.255.255(全網(wǎng)廣播)
        組播IP:224.XXX.XXX.XXX~239.XXX.XXX.XXX

IP地址轉(zhuǎn)換函數(shù):

inet_addr()
    in_addr_t inet_addr(const char *cp)
    參數(shù):
        cp:點(diǎn)分形式的IP地址,結(jié)果時(shí)32位(內(nèi)部包含了字節(jié)序的轉(zhuǎn)換蛇摸,默認(rèn)時(shí)網(wǎng)絡(luò)自己序模式)
    特點(diǎn)
        僅適用于IPv4
        出錯(cuò)時(shí)返回-1
        不能用于255.255.255.255的轉(zhuǎn)換

#include <arpa/inet.h>

int inet_pton(int af, const char *src, void *dst);
特點(diǎn)
    適用于IPv4和IPv6
    能正確處理255.255.255.255(-1)的轉(zhuǎn)換
    參數(shù)
    成功返回1备图,出錯(cuò)返回0,或-1
    af:地址協(xié)議族(AF_INET或AF_INET6)
        src:源IP的指針[點(diǎn)分形式]
        dst:轉(zhuǎn)換結(jié)果

int inet_ntop(int af, const char *src, char *dst, socklen_t size);
    特點(diǎn)
        成功返回非空的指針赶袄,失敗返回NULL
        適用于IPv4和IPv6
        能正確處理255.255.255.255(-1)的轉(zhuǎn)換
    參數(shù)
        af:地址協(xié)議組(AF_INET或AF_INET6)
        src:源IP的指針[32位網(wǎng)絡(luò)字節(jié)序IP地址]
        dst:轉(zhuǎn)換結(jié)果給到dst[點(diǎn)分形式的IP地址揽涮,主要指IPv4]

大低高網(wǎng)(大端低地址存高字節(jié),網(wǎng)絡(luò)字節(jié)序?yàn)榇蠖耍?/em>

端口號(hào)

16位數(shù)字饿肺,1-65535
    預(yù)留端口蒋困,1-1023
        FTP:21
        SSH:22
        HTTP:80
        HTTPS:469
    保留端口,1024-5000
    可使用的5000-65535
    TCP端口和UDP的端口相互獨(dú)立

字節(jié)序

定義
    不同的CPU訪問(wèn)內(nèi)存中的多字節(jié)數(shù)據(jù)的時(shí)候敬辣,存在大小端的問(wèn)題
    如果CPU訪問(wèn)的是字符串雪标,則不存在大小端的問(wèn)題
    小端模式
        低對(duì)低
        低序字節(jié)存儲(chǔ)在低地址
        x86 / ARM
    大端模式
        高對(duì)低
        高序字節(jié)存儲(chǔ)在低地址
        PowerPC / MIPS / ARM作為路由器
本地字節(jié)序(HBO-Host Byte Order)
    與所使用的處理器有關(guān)
網(wǎng)絡(luò)字節(jié)序(NBO-Network Byte Order)
    必為大端字節(jié)序

轉(zhuǎn)換函數(shù)
主機(jī)字節(jié)序到網(wǎng)絡(luò)字節(jié)序
u_long htonl(u_long hostlong)
u_short htons(u_short short)
網(wǎng)絡(luò)字節(jié)序到主機(jī)字節(jié)序
u_long ntohl(u_long hostlong)
u_short ntols(u_short short)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末零院,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子村刨,更是在濱河造成了極大的恐慌告抄,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嵌牺,死亡現(xiàn)場(chǎng)離奇詭異打洼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)逆粹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)募疮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人僻弹,你說(shuō)我怎么就攤上這事阿浓。” “怎么了奢方?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵搔扁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蟋字,道長(zhǎng)稿蹲,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任鹊奖,我火速辦了婚禮苛聘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘忠聚。我一直安慰自己设哗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布两蟀。 她就那樣靜靜地躺著网梢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赂毯。 梳的紋絲不亂的頭發(fā)上战虏,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音党涕,去河邊找鬼烦感。 笑死,一個(gè)胖子當(dāng)著我的面吹牛膛堤,可吹牛的內(nèi)容都是我干的手趣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肥荔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绿渣!你這毒婦竟也來(lái)了朝群?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤怯晕,失蹤者是張志新(化名)和其女友劉穎潜圃,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體舟茶,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谭期,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吧凉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隧出。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖阀捅,靈堂內(nèi)的尸體忽然破棺而出胀瞪,到底是詐尸還是另有隱情,我是刑警寧澤饲鄙,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布凄诞,位于F島的核電站,受9級(jí)特大地震影響忍级,放射性物質(zhì)發(fā)生泄漏帆谍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一轴咱、第九天 我趴在偏房一處隱蔽的房頂上張望汛蝙。 院中可真熱鬧,春花似錦朴肺、人聲如沸窖剑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)西土。三九已至,卻和暖如春鞍盗,著一層夾襖步出監(jiān)牢的瞬間需了,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工橡疼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留援所,地道東北人庐舟。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓欣除,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親挪略。 傳聞我的和親對(duì)象是個(gè)殘疾皇子历帚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容