端口和进程的关系(详解)
生活随笔
收集整理的這篇文章主要介紹了
端口和进程的关系(详解)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:端口
(1):端口的定義
端口號的主要作用是表示一臺計算機中的特定進程所提供的服務。網絡中的計算機是通過IP地址來代表其身份的,它只能表示某臺特定的計算機,但是一臺計算機上可以同時提供很多個服務,如數據庫服務、FTP服務(文件傳輸)、Web服務等,我們就通過端口號來區別相同計算機所提供的這些不同的服務,如常見的端口號21表示的是FTP服務,端口號23表示的是Telnet服務端口號25指的是SMTP服務(郵件傳輸)等。端口號一般習慣為4位整數,在同一臺計算機上端口號不能重復,否則,就會產生端口號沖突這樣的例外 [(也就是是IP確定一臺電腦的位置 而端口可以確定這臺電腦上的某個服務)
(2):邏輯端口和物理端口
- 在 網絡技術 中,端口包括邏輯端口和物理端口兩種類型。物理端口是用于連接物理設備之間的接口,如 ADSL Modem、 集線器 、 交換機 、 路由器 上用于連接其他網絡設備的接口,如 RJ-45端口 、SC端口等等
- 邏輯端口是指邏輯意義上用于區分服務的端口,比如用于瀏覽網頁服務的80端口,用于FTP服務的21端口等。如 TCP/IP協議 中的服務端口,通過不同的邏輯端口來區分不同的服務。一個IP地址的端口通過16bit進行編號,最多可以有65536個端口 [3] 。端口是通過端口號來標記的,端口號只有整數,范圍是從0 到65535。
二:端口和進程
(1):問題的引出
在Internet上,各主機間通過TCP/IP協議發送和接收數據包,各個數據包根據其目的主機的ip地址來進行互聯網絡中的路由選擇,把數據包順利的傳送到目的主機。大多數操作系統都支持多程序(進程)同時運行,那么目的主機應該把接收到的數據包傳送給眾多同時運行的進程中的哪一個呢?顯然這個問題有待解決,端口機制便由此被引入進來。
(也就是我們給目主機發送數據包 但是目的主機上是有很多的很多進程在執行的,那么我們把我們的數據包到底是發送給哪個進程的呀 這時候就把端口引進啦)
(2):端口和進程的關系
- 本地操作系統會給那些有需求的進程分配協議端口(protocol port,即我們常說的端口),每個協議端口由一個正整數標識,如:80,139,445,等等。當目的主機接收到數據包后,將根據報文首部的目的端口號,把數據發送到相應端口,而與此端口相對應的那個進程將會領取數據并等待下一組數據的到來。
- 端口其實就是隊,操作系統為各個進程分配了不同的隊,數據包按照目的端口被推入相應的隊中,等待被進程取用,在極特殊的情況下,這個隊也是有可能溢出的,不過操作系統允許各進程指定和調整自己的隊的大小。
不光接受數據包的進程需要開啟它自己的端口,發送數據包的進程也需要開啟端口,這樣,數據包中將會標識有源端口,以便接受方能順利地回傳數據包到這個端口。
總結
以上是生活随笔為你收集整理的端口和进程的关系(详解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智慧环保综合解决方案 大数据打造生态治理
- 下一篇: 微软新专利获批:无缝跨设备操作,构建统一