網(wǎng)絡(luò)協(xié)議
1. 網(wǎng)絡(luò)協(xié)議為計算機網(wǎng)絡(luò)中進行數(shù)據(jù)交換而建立的規(guī)則比驻、標準或約定的集合。
例如赢乓,網(wǎng)絡(luò)中一個微機用戶和一個大型主機的操作員進行通信苗膝,由于這兩個數(shù)據(jù)終端所用字符集不同止毕,
因此操作員所輸入的命令彼此不認識。為了能進行通信吞滞,規(guī)定每個終端都要將各自字符集中的字符先變換為標準字符集的字符后佑菩,
才進入網(wǎng)絡(luò)傳送,到達目的終端之后裁赠,再變換為該終端字符集的字符殿漠。
2. 就像我們說話用某種語言一樣,在網(wǎng)絡(luò)上的各臺計算機之間也有一種語言佩捞,這就是網(wǎng)絡(luò)協(xié)議绞幌,
不同的計算機之間必須使用相同的網(wǎng)絡(luò)協(xié)議才能進行通信。
3. 一臺設(shè)備上的第 n層與另一臺設(shè)備上的第n層進行通信的規(guī)則就是第n層協(xié)議一忱。
4. 由于網(wǎng)絡(luò)節(jié)點之間聯(lián)系的復(fù)雜性莲蜘,在制定協(xié)議時谭确,通常把復(fù)雜成分分解成一些簡單成分,
然后再將它們復(fù)合起來票渠。最常用的復(fù)合技術(shù)就是層次方式
5. 為了使不同計算機廠家生產(chǎn)的計算機能夠相互通信逐哈,以便在更大的范圍內(nèi)建立計算機網(wǎng)絡(luò),
國際標準化組織(ISO)在1978年提出了“開放系統(tǒng)互聯(lián)參考模型”问顷,即著名的OSI模型
6. 網(wǎng)絡(luò)協(xié)議理論上有無數(shù)種昂秃,具體選擇哪一種協(xié)議則要看情況而定,當然也可以自己寫一套協(xié)議供自己使用杜窄。
OSI 模型各層間關(guān)系和通訊時的數(shù)據(jù)流向如圖所示:
七層模型介紹
物理層:
主要任務(wù)是將比特流與電子信號進行轉(zhuǎn)換;確定與傳輸媒體的接口有關(guān)的一些特性;
eg:RJ45等將數(shù)據(jù)轉(zhuǎn)化成0和1肠骆;
數(shù)據(jù)鏈路層:
定義了通過通信介質(zhì)相互連接的設(shè)備之間數(shù)據(jù)傳輸?shù)囊?guī)范(MAC 地址和分組交換);主要使用兩種信道進行通信:點對點信道和廣播信道;主要解決三個問題:封裝成幀,透明傳輸和差錯檢測;
可以簡單的理解為:規(guī)定了0和1的分包形式,確定了網(wǎng)絡(luò)數(shù)據(jù)包的形式羞芍;
網(wǎng)絡(luò)層:
主要作用是實現(xiàn)終端節(jié)點的通信(IP協(xié)議);IP 協(xié)議的三大作用: IP 尋址,路由和 IP 分包;網(wǎng)絡(luò)層向上只提供簡單靈活的,無連接的,盡最大努力交付的數(shù)據(jù)報服務(wù);其實質(zhì)就是不可靠的傳輸;
可以理解為哗戈,此處需要確定計算機的位置,怎么確定荷科?IPv4,IPv6纱注!
傳輸層:
傳輸層是向上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,但同時又是面向用戶部分的最底層;其中最重要的兩個傳輸協(xié)議是 面向無連接的UDP 和面向連接的 TCP;
可以理解為:每一個應(yīng)用程序都會在網(wǎng)卡注冊一個端口號畏浆,該層就是端口與端口的通信!常用的(TCP/UDP)協(xié)議狞贱;
會話層
會話層建立刻获、管理和終止表示層與實體之間的通信會話;
建立一個連接(自動的手機信息瞎嬉、自動的網(wǎng)絡(luò)尋址);
表示層:
表示層提供多種功能用于應(yīng)用層數(shù)據(jù)編碼和轉(zhuǎn)化,以確保以一個系統(tǒng)應(yīng)用層發(fā)送的信息 可以被另一個系統(tǒng)應(yīng)用層識別;
可以理解為:解決不同系統(tǒng)之間的通信蝎毡,eg:Linux下的QQ和Windows下的QQ可以通信;
應(yīng)用層:
應(yīng)用層的具體內(nèi)容就是規(guī)定應(yīng)用進程在通信時所遵循的協(xié)議;而每個應(yīng)用層的協(xié)議都是為了解決某一類應(yīng)用問題,而問題的解決又往往是通過位于不同主機中的多個應(yīng)用進程之間的通信和協(xié)同工作來完成的;如: http, FTP 等;
常見的應(yīng)用層協(xié)議:
互聯(lián)網(wǎng)分層結(jié)構(gòu)的好處: 上層的變動完全不影響下層的結(jié)構(gòu)氧枣。
TCP/IP 協(xié)議基本概念
TCP/IP 分層模型的分層以以太網(wǎng)上傳輸 UDP 數(shù)據(jù)包如圖所示;
數(shù)據(jù)包
寬泛意義的數(shù)據(jù)包:每一個數(shù)據(jù)包都包含"標頭"和"數(shù)據(jù)"兩個部分."標頭"包含本數(shù)據(jù)包的一些說明."數(shù)據(jù)"則是本數(shù)據(jù)包的內(nèi)容.
細分數(shù)據(jù)包:
- 應(yīng)用程序數(shù)據(jù)包: 標頭部分規(guī)定應(yīng)用程序的數(shù)據(jù)格式.數(shù)據(jù)部分傳輸具體的數(shù)據(jù)內(nèi)容.
——對應(yīng)上圖中的數(shù)據(jù)沐兵!
- TCP/UDP數(shù)據(jù)包:標頭部分包含雙方的發(fā)出端口和接收端口. UDP數(shù)據(jù)包:'標頭'長度:8個字節(jié),"
數(shù)據(jù)包"總長度最大為65535字節(jié),正好放進一個IP數(shù)據(jù)包. TCP數(shù)據(jù)包:理論上沒有長度限制,
但是,為了保證網(wǎng)絡(luò)傳輸效率,通常不會超過IP數(shù)據(jù)長度,確保單個包不會被分割.
——對應(yīng)上圖中的UDP數(shù)據(jù)!
- IP數(shù)據(jù)包: 標頭部分包含通信雙方的IP地址,協(xié)議版本,長度等信息. '標頭'長度:20~60字節(jié),"數(shù)據(jù)包"總長度最大為65535字節(jié).
——對應(yīng)上圖中的IP數(shù)據(jù)
- 以太網(wǎng)數(shù)據(jù)包: 最基礎(chǔ)的數(shù)據(jù)包.標頭部分包含了通信雙方的MAC地址,數(shù)據(jù)類型等.
'標頭'長度:18字節(jié),'數(shù)據(jù)'部分長度:46~1500字節(jié).
——對應(yīng)上圖中的以太網(wǎng)數(shù)據(jù)
四層模型
網(wǎng)絡(luò)接口層
網(wǎng)絡(luò)接口層包括用于協(xié)作IP數(shù)據(jù)在已有網(wǎng)絡(luò)介質(zhì)上傳輸?shù)膮f(xié)議便监。
它定義像地址解析協(xié)議(Address Resolution Protocol,ARP)這樣的協(xié)議,??供 TCP/IP 協(xié)議的數(shù)據(jù)結(jié)構(gòu)和實際物理硬件之間的接口扎谎。
可以理解為:確定了網(wǎng)絡(luò)數(shù)據(jù)包的形式。
網(wǎng)間層
網(wǎng)間層對應(yīng)于 OSI 七層參考模型的網(wǎng)絡(luò)層烧董,本層包含 IP 協(xié)議毁靶、RIP 協(xié)議(Routing Information Protocol,路由信息協(xié)議),負責數(shù)據(jù)的包裝、尋址和路由逊移。同時還包含網(wǎng)間控制報文協(xié)議(Internet Control Message Protocol,ICMP)用來??供網(wǎng)絡(luò)診斷信息预吆;
可以理解為:該層時確定計算機的位置。
傳輸層
傳輸層對應(yīng)于 OSI 七層參考模型的傳輸層,它??供兩種端到端的通信服務(wù)胳泉。其中 TCP 協(xié)議(Transmission Control Protocol)??供可靠的數(shù)據(jù)流運輸服務(wù),UDP 協(xié)議(Use Datagram Protocol)??供不可靠的用戶數(shù)據(jù)報服務(wù)拐叉。
TCP:三次握手觅够、四次揮手;UDP:只發(fā)不管別人收不收得到--任性哈
應(yīng)用層
應(yīng)用層對應(yīng)于 OSI 七層參考模型的應(yīng)用層和表達層;
不明白的再看看7層參考模型的描述巷嚣。
TCP/IP 協(xié)議族常用協(xié)議
- 應(yīng)用層:TFTP喘先,HTTP,SNMP廷粒,F(xiàn)TP窘拯,SMTP,DNS坝茎,Telnet 等等
- 傳輸層:TCP涤姊,UDP
- 網(wǎng)絡(luò)層:IP,ICMP嗤放,OSPF思喊,EIGRP,IGMP
- 數(shù)據(jù)鏈路層:SLIP次酌,CSLIP恨课,PPP,MTU
重要的 TCP/IP 協(xié)議族協(xié)議進行簡單介紹:
- IP(Internet Protocol,網(wǎng)際協(xié)議)是網(wǎng)間層的主要協(xié)議,任務(wù)是在源地址和和目的地址之間傳輸數(shù)據(jù)岳服。
IP 協(xié)議只是盡最大努力來傳輸數(shù)據(jù)包,并不保證所有的包都可以傳輸 到目的地,也不保證數(shù)據(jù)包的順序和唯一剂公。
IP 定義了 TCP/IP 的地址,尋址方法,以及路由規(guī)則。現(xiàn)在廣泛使用的 IP 協(xié)議有 IPv4 和 IPv6 兩種:
IPv4 使用 32 位二進制整數(shù)做地址,一般使用點分十進制方式表示,比如 192.168.0.1吊宋。
IP 地址由兩部分組成,即網(wǎng)絡(luò)號和主機號纲辽。故一個完整的 IPv4 地址往往表示 為 192.168.0.1/24
或192.168.0.1/255.255.255.0 這種形式。
IPv6 是為了解決 IPv4 地址耗盡和其它一些問題而研發(fā)的最新版本的 IP璃搜。
使用 128 位 整數(shù)表示地址,通常使用冒號分隔的十六進制來表示,
并且可以省略其中一串連續(xù)的 0,如:fe80::200:1ff:fe00:1拖吼。目前使用并不多!
- ICMP(Internet Control Message Protocol,網(wǎng)絡(luò)控制消息協(xié)議)是 TCP/IP 的 核心協(xié)議之一,
用于在 IP 網(wǎng)絡(luò)中發(fā)送控制消息,提供通信過程中的各種問題反饋这吻。 ICMP 直接使用 IP 數(shù)據(jù)包傳輸,
但 ICMP 并不被視為 IP 協(xié)議的子協(xié)議吊档。常見的聯(lián)網(wǎng)狀態(tài)診斷工具比如依賴于 ICMP 協(xié)議;
- TCP(TransmissionControlProtocol,傳輸控制協(xié)議)是一種面向連接的,可靠的, 基于字節(jié)流傳輸?shù)耐ㄐ艆f(xié)議。
TCP 具有端口號的概念,用來標識同一個地址上的不 同應(yīng)用橘原。??述 TCP 的標準文檔是 RFC793籍铁。
- UDP(UserDatagramProtocol,用戶數(shù)據(jù)報協(xié)議)是一個面向數(shù)據(jù)報的傳輸層協(xié) 議。UDP 的傳輸是不可靠的,
簡單的說就是發(fā)了不管,發(fā)送者不會知道目標地址 的數(shù)據(jù)通路是否發(fā)生擁塞,
也不知道數(shù)據(jù)是否到達,是否完整以及是否還是原來的 次序趾断。它同 TCP 一樣有用來標識本地應(yīng)用的端口號拒名。
所以應(yīng)用 UDP 的應(yīng)用,都能 夠容忍一定數(shù)量的錯誤和丟包,但是對傳輸性能敏感的,比如流媒體、DNS 等芋酌。
- ECHO(EchoProtocol,回聲協(xié)議)是一個簡單的調(diào)試和檢測工具增显。服務(wù)器器會 原樣回發(fā)它收到的任何數(shù)據(jù),
既可以使用 TCP 傳輸,也可以使用 UDP 傳輸。使用 端口號 7 。
- DHCP(DynamicHostConfigrationProtocol,動態(tài)主機配置協(xié)議)是用于局域 網(wǎng)自動分配 IP 地址和主機配置的協(xié)議同云。
可以使局域網(wǎng)的部署更加簡單糖权。
- DNS(DomainNameSystem,域名系統(tǒng))是互聯(lián)網(wǎng)的一項服務(wù),可以簡單的將用“.” 分隔的一般會有意義的域名轉(zhuǎn)換成
不易記憶的 IP 地址。一般使用 UDP 協(xié)議傳輸, 也可以使用 TCP,默認服務(wù)端口號 53炸站。??
- FTP(FileTransferProtocol,文件傳輸協(xié)議)是用來進行文件傳輸?shù)臉藴蕝f(xié)議星澳。
FTP 基于 TCP 使用端口號 20 來傳輸數(shù)據(jù),21 來傳輸控制信息。
- TFTP(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議)是一個簡化的文 件傳輸協(xié)議,其設(shè)計非常簡單,
通過少量存儲器就能輕松實現(xiàn),所以一般被用來通 過網(wǎng)絡(luò)引導(dǎo)計算機過程中傳輸引導(dǎo)文件等小文件;
- SSH(SecureShell,安全Shell),因為傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序比如TELNET本質(zhì)上都極不安全,明文傳輸數(shù)據(jù)和用戶信息包括密碼,
SSH 被開發(fā)出來避免這些問題, 它其實是一個協(xié)議框架,有大量的擴展冗余能力,并且提供了加密壓縮的通道可以 為其他協(xié)議使用旱易。
- POP(PostOfficeProtocol,郵局協(xié)議)是支持通過客戶端訪問電子郵件的服務(wù),
現(xiàn)在版本是 POP3,也有加密的版本 POP3S禁偎。協(xié)議使用 TCP,端口 110。
- SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議)是現(xiàn)在在互聯(lián)網(wǎng) 上發(fā)送電子郵件的事實標準阀坏。
使用 TCP 協(xié)議傳輸,端口號 25如暖。
- HTTP(HyperTextTransferProtocol,超文本傳輸協(xié)議)是現(xiàn)在廣為流行的WEB 網(wǎng)絡(luò)的基礎(chǔ),HTTPS 是 HTTP 的加密安全版本。
協(xié)議通過 TCP 傳輸,HTTP 默認 使用端口 80,HTTPS 使用 443忌堂。
TCP/IP 協(xié)議層級圖
網(wǎng)絡(luò)數(shù)據(jù)流程概述及其相關(guān)
if(目的主機是與自己在同一個網(wǎng)段內(nèi)){
主機A查詢自己的ARP表;
if(有該目的IP地址對應(yīng)的MAC地址的記錄)
{
將該MAC地址作為目的MAC地址盒至,封裝數(shù)據(jù)幀,傳送給主機B;
}
else
{
發(fā)送一個ARP請求廣播給網(wǎng)段內(nèi)的所有主機士修,來查詢該目的IP地址的MAC地址;
收到ARP請求報文的各個主機如果發(fā)現(xiàn)該IP地址是自己的IP地址枷遂,則返回一個ARP應(yīng)答報文告訴主機A自己的MAC地址;
如果發(fā)現(xiàn)不是自己的IP地址,則丟棄該報文李命。
主機A收到這個應(yīng)答報文后登淘,就按照返回的MAC地址,將IP數(shù)據(jù)包封裝成幀封字,然后發(fā)送到主機B上;
(補充:一般為了減少網(wǎng)絡(luò)中的報文量,通信雙方會維護一個各自的ARP表耍鬓,
把一次通信中獲得IP MAC地址對保存在緩沖的ARP表中,但是ARP表有一個老化機制阔籽,刪除一段時間內(nèi)不用的IP MAC地址)
}
}
else if(發(fā)現(xiàn)了能與目的網(wǎng)絡(luò)號相匹配的表目)
{
則把報文發(fā)給改表目指定的下一站的路由器或直接連接的網(wǎng)絡(luò)接口;
報文發(fā)送到下一站時,數(shù)據(jù)幀的目的MAC地址是下一個站路由器或者網(wǎng)絡(luò)接口的MAC地址牲蜀,
而IP頭部的目的IP地址是主機B的IP地址;
這里要指出的是:ARP請求報文以下一站路由器或網(wǎng)絡(luò)接口的IP地址為目的IP地址笆制,尋找真的目的MAC地址。
換句話涣达,ARP請求報文只負責IP數(shù)據(jù)報傳輸過程中每一跳中的目的MAC地址查詢在辆。
}
else
{
尋找標為“默認”的表目,把報文發(fā)送給該表目指定的下一站路由器;
報文發(fā)送到下一站時度苔,數(shù)據(jù)幀的目的MAC地址是下一個站路由器的MAC地址匆篓,而IP頭部的目的IP地址是主機B的IP地址。
}
數(shù)據(jù)幀在每兩個網(wǎng)絡(luò)設(shè)備間傳遞時寇窑,是轉(zhuǎn)換成bit流在傳輸媒體上傳輸鸦概。
鏈路層提供了如停止等待協(xié)議等機制,控制了bit流在傳輸媒體上的無措傳輸甩骏。
【1】當我們(主機A)需要給對方(主機B)發(fā)送一條信息時窗市,在被分包之前是0先慷、1的數(shù)據(jù)流,CPU會調(diào)用協(xié)議棧對這條信息層層封裝咨察,最后封裝為一個 IP數(shù)據(jù)包论熙,通過數(shù)據(jù)總線發(fā)送給計算機網(wǎng)卡。
【2】在進行封裝LAN層的Mac地址時摄狱,主機A需要先判斷下主機B是否跟自己是同一個網(wǎng)段中
【3】如果目的主機是與自己在同一個網(wǎng)段內(nèi)脓诡,主機A查詢自己的ARP表,有該目的IP地址對應(yīng)的MAC地址的記錄二蓝,將該MAC地址作為目的MAC地址誉券,封裝數(shù)據(jù)幀,傳送給主機B;
【4】如果目的主機是與自己在同一個網(wǎng)段內(nèi)刊愚,但是沒有該目的IP地址對應(yīng)的MAC地址的記錄踊跟,主機A發(fā)送一個ARP請求廣播給網(wǎng)段內(nèi)的所有主機,來查詢該目的IP地址的MAC地址鸥诽,收到ARP請求報文的各個主機如果發(fā)現(xiàn)該IP地址是自己的IP地址商玫,則返回一個ARP應(yīng)答報文告訴主機A自己的MAC地址,如果發(fā)現(xiàn)不是自己的IP地址牡借,則丟棄該報文拳昌。主機A收到這個應(yīng)答報文后,就按照返回的MAC地址钠龙,將IP數(shù)據(jù)包封裝成幀炬藤,然后發(fā)送到主機B上;(補充:一般為了減少網(wǎng)絡(luò)中的報文量,通信雙方會維護一個各自的ARP表碴里,把一次通信中獲得IP MAC地址對保存在緩沖的ARP表中,但是ARP表有一個老化機制沈矿,刪除一段時間內(nèi)不用的IP MAC地址)
【5】如果目的主機是與自己不在同一個網(wǎng)段內(nèi),并且主機A發(fā)現(xiàn)了能與目的網(wǎng)絡(luò)號相匹配的表目咬腋,則把報文發(fā)給改表目指定的下一站的路由器或直接連接的網(wǎng)絡(luò)接口;報文發(fā)送到下一站時羹膳,數(shù)據(jù)幀的目的MAC地址是下一個站路由器或者網(wǎng)絡(luò)接口的MAC地址,而IP頭部的目的IP地址是主機B的IP地址;這里要指出的是:ARP請求報文以下一站路由器或網(wǎng)絡(luò)接口的IP地址為目的IP地址根竿,尋找真的目的MAC地址陵像。換句話,ARP請求報文只負責IP數(shù)據(jù)報傳輸過程中每一跳中的目的MAC地址查詢寇壳。
【6】如果目的主機是與自己不在同一個網(wǎng)段內(nèi)醒颖,并且主機A也沒有發(fā)現(xiàn)能與目的網(wǎng)絡(luò)號相匹配的表目,則主機A尋找標為“默認”的表目九巡,把報文發(fā)送給該表目指定的下一站路由器;報文發(fā)送到下一站時图贸,數(shù)據(jù)幀的目的MAC地址是下一個站路由器的MAC地址,而IP頭部的目的IP地址是主機B的IP地址。
【7】在數(shù)據(jù)被組裝好了之后疏日,計算機會將數(shù)據(jù)包轉(zhuǎn)化為比特流之后轉(zhuǎn)化為電信號偿洁,由發(fā)光二極管LED或注入型激光二極管ILD把電信號轉(zhuǎn)化為光信號(使光的強度隨電信號的幅度(頻率)變化而變化),發(fā)出光信號沿光媒體傳播然后調(diào)制到激光器發(fā)出的激光束上沟优,并通過光纖發(fā)送出去涕滋;在接收端,光敏檢測器收到光信號后把它變換成電信號挠阁,經(jīng)解調(diào)后恢復(fù)原信息宾肺。
【8】在傳輸?shù)倪^程中會有信號的衰減,集線器的主要功能是對接收到的信號進行再生整形放大侵俗,以擴大網(wǎng)絡(luò)的傳輸距離锨用,需要多個端口的話可能會使用中繼器,中繼器和集線器的區(qū)別就是中繼器是多端口的集線器隘谣。
【9】數(shù)據(jù)通過光線到達了局域網(wǎng)的路由器增拥,當然如果主機A是在當前局域網(wǎng)中某個子網(wǎng)的話,數(shù)據(jù)還會經(jīng)過二層交換機或者三層交換機寻歧,反正最后還是在路由器中被重新組裝外層Mac地址和廣域網(wǎng)轉(zhuǎn)發(fā)掌栅。
【10】經(jīng)過層層路由器的轉(zhuǎn)發(fā)最后達到了目的網(wǎng)路段,如果目標網(wǎng)絡(luò)設(shè)有防火墻码泛,還需要穿過防火墻到達最后的目標路由器實現(xiàn)目標主機的數(shù)據(jù)送達猾封。
【11】目標主機收到數(shù)據(jù)后,逆向?qū)訉咏馕鲈肷海詈蟮弥鳈CA發(fā)送的數(shù)據(jù)晌缘。
路由器為什么是網(wǎng)絡(luò)層的硬件?
路由器之所以說工作在網(wǎng)絡(luò)層是因為路由器所做的工作需要的信息只到圖中的Hn段痢站,
實際上傳輸層的Ht和應(yīng)用層的M依然是存在的枚钓,但是路由器用不上,所以說路由器工作在網(wǎng)絡(luò)層瑟押,
而Ht和M到了目的主機中才被使用,其中Ht被目的主機中的TCP使用來分辨?zhèn)鬏數(shù)侥膫€具體進程星掰,
M被目的主機中的應(yīng)用程序使用來解讀傳輸?shù)臄?shù)據(jù)是啥
各層是相互包含的多望,只是各個層次的設(shè)備只需要設(shè)備所在層次的那部分信息
類比與交通系統(tǒng)。
物理層不管內(nèi)容氢烘,只管送給下一站怀偷。相對于公交車。
鏈路層只管局域播玖,不管長途椎工。鏈路層有乘車起點和終點。
鏈路層還有一個要求,就是發(fā)件人到端局 只能用同一個公司的服務(wù)维蒙。
鏈路層管公交換乘掰吕,但必須是同一區(qū)域內(nèi)換乘。根據(jù)起點終點決定換乘 路線颅痊。
網(wǎng)絡(luò)層管跨區(qū)域交通殖熟,區(qū)域間的交通同樣有鏈路層和物理層。
首先這些層不是在電腦上的 斑响,詳細漸漸的深化學(xué)習(xí)就了解了
比方A向B發(fā)送一個QQ信息 “你好” A主機在應(yīng)用層大將這條信息準備好(你從鍵盤上打字)菱属,
然后表示層將這2個字的詳細信息準備好(巨細,粗細舰罚,色彩等)纽门,會話層就與B樹立會話銜接(喂,你在嗎营罢,我要發(fā)東西給你)赏陵,
傳輸層就讓AB兩臺主機樹立邏輯上的銜接(QQ是UDP無銜接的,MSN是TCP有銜接的)愤钾,
傳輸層將數(shù)據(jù)分段 并在一切數(shù)據(jù)段之前打上端口號4000(QQ的端口號)的標簽瘟滨,
網(wǎng)絡(luò)層進行路由尋址,就是找到去往B的路能颁,然后在數(shù)據(jù)段前面加上意圖IP變成數(shù)據(jù)包送到數(shù)據(jù)鏈路層杂瘸,
數(shù)據(jù)鏈路層在數(shù)據(jù)包前面加上下一個路由的MAC地址(每通過一個路由變一次,直到B的MAC地址)伙菊,
然后將數(shù)據(jù)包轉(zhuǎn)換為幀败玉,最終到物理層,物理層將數(shù)據(jù)幀變成010101的比特流镜硕,發(fā)送出去运翼,
以上就是封裝的進程,然后通過N個路由兴枯,最終送到主機B物理層上血淌,開端解封裝,
將01010比特流通化為數(shù)據(jù)鏈路層可以辨認的數(shù)據(jù)幀财剖,并拆下最前面一段MAC地址悠夯,拿出來一看,
哦躺坟,這是給我的數(shù)據(jù)包沦补,然后將數(shù)據(jù)幀轉(zhuǎn)化為數(shù)據(jù)包送給網(wǎng)絡(luò)層繼續(xù)拆,拆下IP地址咪橙,也契合夕膀,再轉(zhuǎn)化為數(shù)據(jù)段送給傳輸層虚倒,
傳輸層也拆開端口信息,然后將數(shù)據(jù)段重組成數(shù)據(jù)發(fā)給4000端口(不然計算機不知道到底應(yīng)該將數(shù)據(jù)交給誰處理产舞,
端口就是電腦知道這到底是誰的數(shù)據(jù)魂奥,總不能發(fā)給音樂或許視頻什么的吧),再到會話層完結(jié)停止這次會話庞瘸,
到表明層和應(yīng)用層就在主機B大將“你好“兩個字顯示出來捧弃,整個進程就基本完結(jié)了。 這仍是很簡略的進程擦囊,
網(wǎng)卡自身屬于物理設(shè)備,主要任務(wù)是將雙絞線與您的網(wǎng)卡相連.
數(shù)據(jù)鏈路層作為OSI模型的第二層.在二層的為MAC地址,數(shù)據(jù)單元是FRAME.網(wǎng)卡自身運用的是MAC地址,
與交流機相連構(gòu)成一個規(guī)范交流系統(tǒng).與交流機通訊運用的是FRAME,用的地址也是MAC地址.
常見的對照關(guān)系
物理層 網(wǎng)線 水晶頭
數(shù)據(jù)鏈路層 交換機 網(wǎng)卡
網(wǎng)絡(luò)層 路由器
傳輸層以上基本都是軟件實現(xiàn)了
對了
計算機中的網(wǎng)卡基本工作在整個協(xié)議棧违霞。
首先ip就像是你的房間號,mac地址就像是你的身份證號碼瞬场。ip地址是可以改變的买鸽,而mac地址是廠商制定的不可改變的。
通信過程中贯被,每層協(xié)議都要加上一個數(shù)據(jù)首部(header)眼五,稱為封裝(Encapsulation),如下圖所示
不同的協(xié)議層對數(shù)據(jù)包有不同的稱謂彤灶,在傳輸層叫做段(segment)看幼,在網(wǎng)絡(luò)層叫做數(shù)據(jù)報(datagram),在鏈路層叫做幀(frame)幌陕。數(shù)據(jù)封裝成幀后發(fā)到傳輸介質(zhì)上诵姜,到達目的主機后每層協(xié)議再剝掉相應(yīng)的首部,最后將應(yīng)用層數(shù)據(jù)交給應(yīng)用程序處理搏熄。
其實在鏈路層之下還有物理層棚唆,指的是電信號的傳遞方式,比如現(xiàn)在以太網(wǎng)通用的網(wǎng)線(雙絞線)心例、早期以太網(wǎng)采用的的同軸電纜(現(xiàn)在主要用于有線電視)宵凌、光纖等都屬于物理層的概念。
注意網(wǎng)卡芯片(例如DM9000A)收到的數(shù)據(jù)就是如上所示的一長串數(shù)據(jù)止后;其中包括以太網(wǎng)幀頭瞎惫、IP報報頭、傳輸層協(xié)議段頭译株、應(yīng)用層所需數(shù)據(jù)微饥。
*參考文章
以太網(wǎng),IP,TCP,UDP數(shù)據(jù)包分析
數(shù)據(jù)包是如何在網(wǎng)絡(luò)中傳輸?shù)?/a>
深入淺出-網(wǎng)絡(luò)七層模型&&網(wǎng)絡(luò)數(shù)據(jù)包