tcp ip計算機網絡協議,一篇文章帶你熟悉 TCP/IP 協議-(一)

一、 計算機網絡體系結構分層

bVbiw5r?w=1240&h=535

bVbiw54?w=581&h=495

bVbiw6p?w=1033&h=400

不難看出,TCP/IP 與 OSI 在分層模塊上稍有區別。OSI 參考模型注重“通信協議必要的功能是什么”,而 TCP/IP 則更強調“在計算機上實現協議應該開發哪種程序”。

二、 TCP/IP 基礎

1. TCP/IP 的具體含義

從字面意義上講,有人可能會認為 TCP/IP 是指 TCP 和 IP 兩種協議。實際生活當中有時也確實就是指這兩種協議。然而在很多情況下,它只是利用 IP 進行通信時所必須用到的協議群的統稱。具體來說,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都屬于 TCP/IP 協議。他們與 TCP 或 IP 的關系緊密,是互聯網必不可少的組成部分。TCP/IP 一詞泛指這些協議,因此,有時也稱 TCP/IP 為網際協議群。互聯網進行通信時,需要相應的網絡協議,TCP/IP 原本就是為使用互聯網而開發制定的協議族。因此,互聯網的協議就是 TCP/IP,TCP/IP 就是互聯網的協議。

bVbiw7Z?w=768&h=528

2. 數據包包、幀、數據包、段、消息以上五個術語都用來表述數據的單位,大致區分如下:

包可以說是全能性術語;

幀用于表示數據鏈路層中包的單位;

數據包是 IP 和 UDP 等網絡層以上的分層中包的單位;

段則表示 TCP 數據流中的信息;

消息是指應用協議中數據的單位。

每個分層中,都會對所發送的數據附加一個首部,在這個首部中包含了該層必要的信息,如發送的目標地址以及協議相關信息。通常,為協議提供的信息為包首部,所要發送的內容為數據。在下一層的角度看,從上一層收到的包全部都被認為是本層的數據。

bVbiw89?w=560&h=503

網絡中傳輸的數據包由兩部分組成:一部分是協議所要用到的首部,另一部分是上一層傳過來的數據。首部的結構由協議的具體規范詳細定義。在數據包的首部,明確標明了協議應該如何讀取數據。反過來說,看到首部,也就能夠了解該協議必要的信息以及所要處理的數據。包首部就像協議的臉。

3. 數據處理流程

下圖以用戶 a 向用戶 b 發送郵件為例子:

bVbiw9I?w=772&h=776

① 應用程序處理

首先應用程序會進行編碼處理,這些編碼相當于 OSI 的表示層功能;編碼轉化后,郵件不一定馬上被發送出去,這種何時建立通信連接何時發送數據的管理功能,相當于 OSI 的會話層功能。

② TCP 模塊的處理

TCP 根據應用的指示,負責建立連接、發送數據以及斷開連接。TCP 提供將應用層發來的數據順利發送至對端的可靠傳輸。為了實現這一功能,需要在應用層數據的前端附加一個 TCP 首部。

③ IP 模塊的處理

IP 將 TCP 傳過來的 TCP 首部和 TCP 數據合起來當做自己的數據,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,參考路由控制表決定接受此 IP 包的路由或主機。

④ 網絡接口(以太網驅動)的處理

從 IP 傳過來的 IP 包對于以太網來說就是數據。給這些數據附加上以太網首部并進行發送處理,生成的以太網數據包將通過物理層傳輸給接收端。

⑤ 網絡接口(以太網驅動)的處理

主機收到以太網包后,首先從以太網包首部找到 MAC 地址判斷是否為發送給自己的包,若不是則丟棄數據。如果是發送給自己的包,則從以太網包首部中的類型確定數據類型,再傳給相應的模塊,如 IP、ARP 等。這里的例子則是 IP 。

⑥ IP 模塊的處理

IP 模塊接收到 數據后也做類似的處理。從包首部中判斷此 IP 地址是否與自己的 IP 地址匹配,如果匹配則根據首部的協議類型將數據發送給對應的模塊,如 TCP、UDP。這里的例子則是 TCP。另外嗎,對于有路由器的情況,接收端地址往往不是自己的地址,此時,需要借助路由控制表,在調查應該送往的主機或路由器之后再進行轉發數據。

⑦ TCP 模塊的處理

在 TCP 模塊中,首先會計算一下校驗和,判斷數據是否被破壞。然后檢查是否在按照序號接收數據。最后檢查端口號,確定具體的應用程序。數據被完整地接收以后,會傳給由端口號識別的應用程序。

⑧ 應用程序的處理

接收端應用程序會直接接收發送端發送的數據。通過解析數據,展示相應的內容。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456903.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456903.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456903.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

遠程控制python

import telnetlibdef telnetDoSomething(IP,user,passwd,command):try:# 連接服務器telnet telnetlib.Telnet(IP)# 設置調試級別telnet.set_debuglevel(2)# 讀取輸入用戶名信息rt telnet.read_until("Login username:".encode("utf-8"))# 寫入用戶名tel…

Random Forest算法參數解釋及調優

文章介紹了如何對隨機森林模型進行參數調優 原文來自:http://www.analyticsvidhya.com/blog/2015/06/tuning-random-forest-model/ 為什么要調整機器學習算法? 一個月以前,我在kaggle上參加了一個名為TFI的比賽。 我第一次提交的結果在50%…

浮動問題

- 浮動很多時候是用來解決多列顯示的問題- 浮動之后變為inline-block(浮動文本必須制定width)- 浮動之后會脫離文檔流- 浮動后的元素不會存在margin的垂直方向的問題 - 浮動之后會影響周圍元素的布局- 浮動不會超出父級元素- 浮動效果只會影響后面的元素(包括自己的…

Servlet3.0新特性

1 Servlet3.0新特性概述 使用要求:MyEclipse10.0或以上版本,發布到Tomcat7.0或以上版本,創建JavaEE6.0應用!  Servlete3.0的主要新特性如下三部分:    使用WebServlet、WebFilter、WebListener三個注解來替代we…

計算機系統遵循,自考《計算機系統結構》第10章精講

第十章 新型計算機系統結構本章只作一般要求,了解基本原理和概況。一、計算模型分類(識記)計算模型是描述如何在計算機中完成計算的一種概念性方法,不涉及硬件和軟件細節。它給出了完成計算所必須遵循的基本規則。計算機系統結構是有關計算模型的一個具體…

re模塊的使用

import re # pip 包管理工具r re.match函數 原型:match(pattern, string, flags0) pattern: 匹配的正則表達式 string: 要匹配的字符串 flags:標志位,用于控制正則表達式的匹配方式,值如下 re.I 忽略大小寫 re.L 做本地話識別 re.M 多行匹配&…

Random Forest隨機森林概述

引言 在機器學習中,隨機森林由許多的決策樹組成,因為這些決策樹的形成采用了隨機的方法,因此也叫做隨機決策樹。隨機森林中的樹之間是沒有關聯的。當測試數據進入隨機森林時,其實就是讓每一顆決策樹進行分類,最后取所…

走出半生,望你歸來仍是程序員

在世二十七年,自認為積累了一點人生經驗。思索著當你還在你娘胎的日子里,整理一番留給以后的你,當作你以后漫漫人生路上的參考。我保證,倘若哪天你發現某條不對或者跟你的想法不一樣,你能敞開心扉與我交談,…

kd tree學習筆記 (最近鄰域查詢)

https://zhuanlan.zhihu.com/p/22557068 http://blog.csdn.net/zhjchengfeng5/article/details/7855241 KD樹在算法競賽中主要用來做各種各樣的平面區域查詢,包含則累加直接返回,相交則繼續遞歸,相離的沒有任何貢獻也直接返回。可以處理圓&am…

正則表達式的元素符

import reprint("----------匹配單個字符與數字----------") r . 匹配除換行符以外的任意字符 [0123456789] []是字符集合,表示匹配方括號中所有所包含的任意一個字符 [liuwang] [] 匹配‘l,i,u 中任意一個字符…

圖像影音型計算機主板選擇什么,電腦主板型號在哪里看? 每日一答

電腦主板型號在哪里看?想要看主板的型號其實非常簡單,一般來說,主板上都會有一個專門的身份標識,位于PCI-E顯卡插槽之間,比如下方這張圖,就清晰地寫明了MAXIMUS X APEX的標識,熟悉的玩家一眼就能…

使用葉神模擬器無法訪問本機服務器的問題(報錯:java.net.ConnectException: failed to connect to /127.0.0.1 (port 5000) )

最近打算用夜神模擬器來和本機服務器做一些信息交互的功能,但是服務器搭建好了,用葉神模擬器卻無法訪問。折騰了大半天才發現原來是模擬器的問題。 具體過程如下: 搭建好服務器后,在本機上訪問“http://127.0.0.1:5000/”&#…

NSObject協議中方法:description 和 debugDescription

description基本概念 1.NSLog("%", objectA);這會自動調用objectA的description方法來輸出ObjectA的描述信息. 2.description方法默認返回對象的描述信息(默認實現是返回類名和對象的內存地址) 3.description方法是基類NSObject 所帶的方法,因為其默認實現是返回類名…

re模塊的深入

import re 字符串切割str1 "allen is a good man" print(str1.split()) print(re.split((r" "),str1)) re.finditer函數 原型:finditer(pattern, string, flags0) pattern: 匹配的正則表達式 string: 要匹配的字符串 flags:標志位&…

身份證

<?php defined(IN_IA) or exit(Access Denied);class check {// $num為身份證號碼&#xff0c;$checkSex&#xff1a;1為男&#xff0c;2為女&#xff0c;不輸入為不驗證public function checkIdentity($num, $checkSex ) {// 不是15位或不是18位都是無效身份證號if (strl…

鼓勵參與計算機考試宣傳標語,誠信考試的宣傳標語(精選60條)

誠信考試的宣傳標語(精選60條)誠信考試&#xff0c;做文明公民&#xff0c;既是時代需要&#xff0c;也是做人的基本準則。下面是小編收集的誠信考試的宣傳標語(精選60條)&#xff0c;歡迎閱讀。1、讓舞弊遠離校園&#xff0c;讓誠信常駐心中2、刻苦學習&#xff0c;認真做人3、…

初學大數據之如何選擇機器學習算法

最近在國外網站看到一篇不錯的文章&#xff0c;所以就翻譯過來給大家分享一下。主要介紹初學者怎么選擇機器學習算法,希望對各位初學者有幫助。 原文如下: 一個初學者面臨各種機器學習算法的典型問題是“我應該使用哪種算法&#xff1f;”問題的答案取決于許多因素&#xff0…

Django查詢 – id vs pk

當編寫django查詢時&#xff0c;可以使用id / pk作為查詢參數。 Object.objects.get(id1) Object.objects.get(pk1) pk代表主鍵(primary key)&#xff0c; pk更加獨立于實際的主鍵字段&#xff0c;即不必關心主鍵字段是否被稱為id或object_id或其他。 如果您具有不同主鍵字…

Tomcat的Session管理(三)

摘要&#xff1a;PersistentManager與StandardManager的異同。 之前兩篇關于session的文章主要討論了session相關的創建、查詢、過期處理。而我們查看源碼的時候都是默認實現是StandardManager類&#xff0c;實際上實現也可以是PersistentManager類&#xff0c;下面我們就查看下…

計算機基礎的函數公式,大學計算機基礎 excle 公式與函數

《大學計算機基礎 excle 公式與函數》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《大學計算機基礎 excle 公式與函數(32頁珍藏版)》請在人人文庫網上搜索。1、,.,場景1,發布日期:2011.11.09,新入職場,經理說&#xff1a; 小張&#xff0c;以后工資發放的事情就交給…