就是我目前正在準備國考的網路概論,網路概論一開始都會先介紹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模型中是扮演什麼樣的腳色??是位在模型的上層
還是底層??
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資料連結層
先說概論不一定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
看完問題覺得你的方向怪怪的
去翻一下實例對應會比較容易有概念
網路線、集線器、路由器各是哪一層的設備;視訊會議資料主要是哪一層在處理的
以前學的是這樣~供參考