iT邦幫忙

1

有關於OSI7層架構的問題

  • 分享至 

  • xImage

就是我目前正在準備國考的網路概論,網路概論一開始都會先介紹OSI 7層架構的概要,

分別是應用層、表現層、會話層、傳輸層、網路層、資料連結層、實體層共7層。

針對這7層都會有最簡單的介紹與說明,其中表現層與會話層會合併到應用層裡,

就剩下5層,所以通常接下來就是依序介紹這5層。

目前我先理解到的是每一層都有各自的協定,這樣每一層之間,例如應用層對應用層

傳輸層對傳輸層、網路層對網路層之間才能互相通訊

而這是橫向的通訊,又叫做Peer-to-peer;每一層之間

還有縱向的通訊,指的是在同一主機內,應用層、傳輸層、網路層之間上下的通訊

所以每一層的通訊協定,既有橫向的通訊協定部分又有縱向的通訊協定部分

而協定就可產生層與層之間溝通的介面,也就是interface,

橫向的通訊協定部分產生橫向的溝通介面,叫peer-to-peer interface

縱向的通訊協定部分產生縱向的溝通介面,叫service interface

應用層對應用層的協定,較有名的有HTTP、FTP、SMTP、POP3、DNS

用於主機內應用程式對主機內程式的溝通

傳輸層的協定,有TCP、UDP

也是規範主機程式之間的溝通

網路層的協定,主要是IP

則是規範主機之間的溝通。

資料傳輸層的協定,有MAC Protocol,

規範相鄰主機、設備的溝通

實體層則是兩台設備之間用binary的訊號,透過纜線、光纖或是電磁波作為媒介來溝通。


我的問題1是,

橫向的溝通介面可以建立在主機與主機之間,或是程式與程式之間,

那縱向的溝通介面,因為縱向的溝通都是在同一台主機裡面,那縱向的溝通介面

像是應用層對傳輸層,傳輸層對網路層,是建立在主機內的哪裡??

或者是說同一台主機內,這幾層分別是對應到主機的哪部份?例如應用層對應到主機程式、

網路層對應到主機本身,那其他的層像是傳輸層、資料連結層又是對應到主機的哪個部分?

問題2是,

應用層規範主機程式與程式之間的通訊

傳輸層也是規範程式與程式之間的通訊,那這兩者應該如何區別呢??或者是說,這兩者

規範的程式是不同的??例如應用層就是規範應用程式,傳輸層規範底層的程式??

問題3是,

應用層與傳輸層都是負責主機程式之間的溝通,那主機傳送訊息到另一台主機,就

應用層是根據port號,決定要傳送到哪個程式,例如訊息的port號是80,就根據這個80

將該訊息傳送到瀏覽器;那傳輸層是根據什麼,決定要傳送到主機內的哪個程式呢?

問題4是,

資料傳輸層與實體層都是規範相鄰主機的通訊,那這兩者的差異是??

像是資料傳輸層的規範有MAC Protocol,但是實體層好像沒有對應的規範??

或是資料傳輸層用MAC地址當作傳輸地址,而實體層好像也沒有對應的位址來表示??

或是資料傳輸層用的是frame為單位來傳輸,而實體層就是用單純binary的訊號來傳輸,

沒有像資料傳輸層用frame為單位,網路層用package為單位,以單位的方式來傳輸??

問題5是,

主機內的網路卡,在這個OSI模型中是扮演什麼樣的腳色??是位在模型的上層

還是底層??

Hans5300609 iT邦研究生 4 級 ‧ 2022-06-13 15:13:28 檢舉
覺得你還是要重讀一遍,或者你考試課本教的不太好...
另外Wiki可以看一下,再去圖書館翻看網路概論的書
如果你覺得沒必要那就不用(我不知國考會考多深

我記得聽過有說過TCP/IP和OSI對應有兩種版本
上課老師說考試會依照課本為主
所以建議請依照你考試用書為主
兩種版本是指OSI七層和DoD四層吧
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
mathewkl
iT邦高手 1 級 ‧ 2022-06-13 09:15:49

手邊剛好有一張OSI7層圖
你的問題很大部分是你依舊不懂OSI7層每層相對應的東西和負責什麼

https://ithelp.ithome.com.tw/upload/images/20220613/20106343tf0txjGFrg.png

https://www.ithome.com.tw/tech/47085

1
I.T. Wang
iT邦新手 2 級 ‧ 2022-06-13 15:36:36

OSI model只是參考模型,非實際部署模型
Q1
如果硬要說縱向對應關係,可以參考Windows>工作管理員>資源監視器>網路頁籤>接聽連接埠,
此會顯示應用程序使用哪個協議與port號。

Q2
你可以參考多版本的OSI描述,例如wiki也可以;個人覺得某些計概版本寫得很爛...例如高職計概、會懂才怪= =

Q3
我認為瀏覽器涵蓋TCP/IP應用層,另外瀏覽器這個應用程式與port沒直接關係;
你說的80port一般是http port,實際上封包有來源與目的欄位、無論MAC、IP、TCP/UDP,
通常用戶端向服務器存取http,source port是隨機的(通常選大於1023),destination port才是80。

Q4
實體層的規範,就是RJ-11、RJ-45、1000BASE-T這種,
所以不是每一層都需要位址,或者可以說對應哪個port號,這不是TCP/UDP的port,是例如交換器、防火牆上的gigabitethernet0/1。
網路層應該用「datagram」

Q5
網路卡在OSI通常位於L2資料連結層

0
Hans5300609
iT邦研究生 4 級 ‧ 2022-06-13 17:00:01

先說概論不一定100%和實際一樣,就像ISO組織訂了OSI 7Layer但是實際上是用TCP/IP。
協定則是提供大家遵守就能與其他程式互通。
例如網頁伺服器有名的有Apache HTTP Server、IIS和Nginx,但都遵守HTTP協定狀態碼200是OK。

問題1

請參考上面mathewkl大大OSI層圖。

問題2

同上。

問題3

TCP三手交握後就會連線
然後老實說概論這東西我是用背的,內部運作你都想要詳細知道可能要先會以下這些東西
網路卡:電子學、電子電路學、網卡零件的datasheet、IEEE 802.3(Ethernet)文件,其他種架構暫時略過。(我不是電子的交給其他專業補齊)
作業系統(Linux有公開原始碼)、網路卡驅動程式(目前市面上有看到Linux驅動程式撰寫的書)、
其他協定請看各協定文件,或者你要直接實作
http協定可以去翻Apache HTTP Server原始碼

問題4

實體就是電子電路,網路線另一端設備會處理
傳輸路徑可參考Wiki的圖
※註:以前TCP/IP只有4層沒實體層,我手邊兩本台灣作者2010和2012年出版的書都只有4層...

另外有些路由器或switch有控管應用程式功能,途中節點可能會拆解封包更多層
例如L4 Switch。

問題5

把樓上的圖理解就知道網路卡是在哪層...
還是說你只是想問這個?


建議可以看圖書館有沒有
TCP/IP通訊協定第四版 Behrouz A. Forouzan著 東華書局
ISBN:978-986-157-743-2
書中有講解到類似Wiki那張圖但是已更新為5層

另外這個用Wireshark觀察實作也可參考
https://dotblogs.azurewebsites.net/Leo_CodeSpace/2019/03/29/203853

題外
影片Warriors of The Net,至少16年以上的3D動畫簡單說明網路封包路途...
https://www.youtube.com/watch?v=COfuGYXNd70

那本書是用DoD四層講解的吧

Hans5300609 iT邦研究生 4 級 ‧ 2022-06-15 00:04:07 檢舉

!!
有一本沒5層有提到DoD模型。
發現我另一本原文書也沒提到DoD就直接寫layer model畫5層Orz
原來實體層不是標準嗎...

0
dophintil
iT邦新手 4 級 ‧ 2022-06-17 13:58:37

看完問題覺得你的方向怪怪的

  1. 不同層不是縱向傳輸,應該說各取所需,不同層負責的事情不同,他們會擷取封包的不同段去做自己要做的事情。狠一點的考試還會考擷取封包長度
  2. 每一層取到的資料不同,實體層只管線路有沒有通、網路層管IP資料、應用層當然就是程式介接說好的例如資料欄位等等,大方向是這樣,當然OSI是一個概論
  3. 就像HUB只要你把網路線接上來,他就全部把資料丟給你(廣播);路由器把網路線接上來,他還要看兩邊的網段是不是一樣(封包裡有IP等資料),一樣才會把資料從一頭傳給另一頭
  4. 記得以前計概教的是OSI7層跟TCP5層

去翻一下實例對應會比較容易有概念
網路線、集線器、路由器各是哪一層的設備;視訊會議資料主要是哪一層在處理的

以前學的是這樣~供參考

我要發表回答

立即登入回答