網絡基礎

最初只是硬件廠商自家硬件設備的網絡連接 並不認識起他廠商的網絡技術 所以無法彼此連接

   全錄公司的 Ethernet 技術

   IBM 研發的 Token-Ring 技術


1960 年代末期 美國國防部尖端研究企畫署(DARPA) 研究了不同的網絡硬件上面運行的軟件技術

   —>ARPANET網絡系統誕生(tcp/ip雛形)

      —>1980 年正式推出 —>TCP/IP 技術

         —>與柏克萊 (Berkeley) 大學合作,將 TCP/IP 植入 BSD Unix 系統內

            —>這種連接網絡的技術被稱爲Internet

               —>只要能夠支持 TCP/IP 技術的硬件與操作系統,連接上網絡, 你就進入了全球的Internet 世界

軟硬件標準的成功制定:IEEE標準規範

   網絡的硬件與軟件種類很多 最成功的卻是以太網絡 (Ethernet) 與 Internet 因爲他們被“標準”所支持原因


Ethernet以太網(基本硬件網絡設備

以太網絡最初是由全錄 (Xerox PARC) 所建構

    —>而後透過 DEC, Intel 與 Xerox 合作將以太網絡標準化

      —>IEEE (Institute of Electrical and Electronic Engineers) 國際專業組織利用 802 的專案制定出標準

          —>19 家公司宣佈支持 IEEE 所發佈的 802.3 標準

             —>1989 年國際標準組織 ISO (International Organization for Standard) 

                   將以太網絡編入 IS88023 標準

                    —>大家依據這個標準來配置與開發自己的硬件 就可以加入以太網絡世界

                        —>Novell 網絡操作系統支持以太網絡

                                —>支持 IBM 的個人計算機

                                    —>以太網得以流行


Internet的TCP/IP通訊協議(軟件協議

    編寫符合TCP/IP協議的程序 就可以連接上 Internet


網絡組件

    節點(node):          具有網絡地址(IP)的設備 如:pc linux服務器 打印機 ADSL等 hub不具有IP

    服務器主機(server):             提供數據響應給用戶的主機

    客戶端(client):                     主動發起聯機請求數據的主機

    工作站(workstation):高端的通用微型計算機。 單用戶使用並提供比個人電腦更強大的性能

    網卡(Network Interface Card ,NIC): 內建或外插在主機上 大都使用RJ-45接頭的以太網絡卡

    網絡接口:     利用軟件設計出來的 主要提供IP的任務 主機都有一個內部的網絡接口loopback(lo)

    網絡形態或拓撲(topology):                 節點在網絡上的連接方式 一般講的是物理連接方式

    網關(route)或通訊閘(gateway):      具有兩個以上的網絡接口 可以連接兩個以上的不同網段


網絡區域範圍

    早期定義爲局域網(Local Area Network,LAN)和廣域網(Wide Area Network,WAN)和所謂都會網(Metropolitan Area Network,MAN)

        局域網:距離近 使用較爲昂貴的聯機材料例如光纖或CAT6等 速度較快 聯機質量可靠 因此用於科學運算 分佈式系統 雲端負荷分擔等

        廣域網:距離遠 聯機材料使用的較爲便宜 比如電話線 網絡應用大多類似email ftp www等

        都會網:比較少提及

    現在可以使用速度作爲網絡區域範圍的區分

網絡協議 OSI七層協議(Open System Interconnection)

    只是幫助理解網絡傳輸情況 實際的聯網程序代碼是交給TCP/IP來處理


網絡協議 TCP/IP四層協議

    同樣是分層的架構 但沒有OSI七層那麼過於嚴謹 程序撰寫比較容易 1990年email www的流行 使TCP/IP被大家接受得以發展成現在網絡社會

    wKioL1guZCuCVxUiAAA4mgz3IoM401.gif-wh_50

TCP/IP的工作過程

  1. 應用程序階段:妳打開瀏覽器,在瀏覽器上面輸入網址列,按下 [Enter]。此時網址列與相關數據會被瀏覽器包成一個數據, 並向下傳給 TCP/IP 的應用層;

  2. 應用層:由應用層提供的 HTTP 通訊協議,將來自瀏覽器的數據報起來,並給予一個應用層表頭,再向傳送層丟去;

  3. 傳送層:由於 HTTP 爲可靠聯機,因此將該數據丟入 TCP 封包內,並給予一個 TCP 封包的表頭,向網絡層丟去;

  4. 網絡層:將 TCP 包裹包進 IP 封包內,再給予一個 IP 表頭 (主要就是來源與目標的 IP 囉),向鏈結層丟去;

  5. 鏈結層:如果使用以太網絡時,此時 IP 會依據 CSMA/CD 的標準,包裹到 MAC 訊框中,並給予 MAC 表頭,再轉成位串後, 利用傳輸媒體傳送到遠程主機上。


TCP/IP中的硬件與鏈結層協議

廣域網使用的設備

       傳統電話撥接:透過 ppp 協議 電話和網絡不能同時

       非對稱數位用路迴路 (Asymmetric Digital Subscriber Line, ADSL):透過 pppoe 協定 電話和網絡可以同時使用

       電纜調制解調器 (Cable modem) 透過有線電視使用的線纜 同樣需要ADSL


局域網使用的設備--以太網絡

     最初IEEE制訂以太網標準 802.3 的IEEE 10BASE5

         10 代表傳輸速度爲 10Mbps

         BASE 表至採用基頻信號來進行傳輸,

         5 則是指每個網絡節點之間最長可達 500 米

         網絡的傳輸信息就是 0 與 1(位:bit) 因此數據傳輸的單位爲每秒多少 bit  即 M bits/second, Mbps

         所以ISP上寫的10/100Mbps 可不是10MB和100MB 要除以8纔是實際的MB


以太網的速度

    早期同軸電纜(一條同軸電纜線連結所有的計算機的 bus 連線

        —>類似傳統電話線的雙絞線

            >IEEE 將這種線路的以太網絡傳輸方法制訂成爲 10BASE-T 的標準

                    (10Mbps全速運行且採用無遮蔽式雙絞線 (UTP) 的網絡線)

                >10BASE-T 的 UTP 網絡線可以使用星形連線(star)(一個集線器爲中心來串連各網絡設備)

                    >IEEE 制訂 802.3u 標準(100BASE-T )

                        (100Mbps 採用更精良的雙絞線即八蕊網絡線,稱爲等級五 (Category 5, CAT5) 的網絡線)

                        >這種傳輸速度的以太網絡就被稱爲 Fast ethernet 

                            > Gigabit 網絡速度 1000 Mbps (Gigabit ethernet) 需要更精良的網絡線(CAT 6)


以太網的網絡接頭

     大多使用RJ-45的八蕊接頭

     

接頭名稱\蕊線順序12345678
568A白綠白橙白藍白棕
568B白橙白綠白藍白棕
  • 跳線:一邊爲 568A 一邊爲 568B 的接頭時稱爲跳線,用在直接鏈接兩部主機的網絡卡。

  • 並行線:兩邊接頭同爲 568A 或同爲 568B 時稱爲並行線,用在鏈接主機網絡卡與集線器之間的線材;


以太網的傳輸協議 CSMA/CD

     以太網絡的傳輸主要就是網絡卡對網絡卡之間的數據傳遞

     網絡卡出廠時,都有一個獨一無二的卡號 就是 MAC (Media Access Control) 

     IEEE 802.3 的標準 CSMA/CD

          集線器(hub)網絡共享媒體在單一時間點內, 僅能被一部主機所使用

          集線器+CSMA/CD的傳輸流程

               1.監聽:主機監聽hub使用情況 無使用發送訊框

                         --》如果發送一個大文件 由於標準的訊框數據在網絡卡與其他以太網絡媒體一次

                                     只能傳輸 1500bytes,因此我的 100MB 檔案就得要拆成多個小數據報,然後一個一個的傳送

                                     每次都使用CSMA/CD的機制 所以即使數據很大 大家也可以同時聯機

                         --》也存在超大訊框(Jumbo frame  9000bytes)但多數在內網使用 因爲遇到不支持的設備會丟棄

               2.多點傳輸:hub收到數據 複製一份 發給所有連接的主機 主機各自判定是否給自己 不是則丟棄

                         --》所以hub上的多個燈閃個不停

                         --》所以可以監聽hub發出不是給本人的數據

               3.碰撞偵測:如果多主機同時間發送數據給hub 則數據損害 等待一段時間 重複第一步


MAC的封裝格式

     CSMA/CD傳送出去的訊框數據就稱爲MAC(frame):因爲訊框內兩個重要的數據就是目標與來源網卡卡號

     只是在局域網傳輸時才使用MAC地址  不能跨越路由器router

     MAC是網絡數據傳送的最小單位

     硬件地址最小由 00:00:00:00:00:00 到 FF:FF:FF:FF:FF:FF  前 3bytes 爲廠商的代碼,後 3bytes 則是該廠商自行設定的裝置碼

     CSMA/CD機制爲了偵測碰撞 數據最小也需要46Bytes 數據不足 自動填充


集線器,交換機與相關機制

     交換機(switch):非網絡共享媒體

     交換機內有內存記錄每個switch port的Mac地址

     每個port都具有獨立帶寬 但如果同時向一部主機傳輸時就非獨立了

     選購可以支持全雙工/半雙工,以及支持 Jumbo frame 的爲佳!

     全雙工/半雙工:如果兩個pc都支持全雙工 那麼input/output均可達到最大網速

     hub的網線腳位緣故 不支持全雙工 switch則支持 

     新的switch/hub具有自動協調網速機制 亦即是 Gigabit 網絡卡可以與早期的 10/100Mbps 網絡卡鏈接而不會發生問題

     switch 若含有auto MDI/MDIX 的功能時不需要分辨是跳線還是並行線


TCP/IP的網絡層相關封包與數據

IP封包的封裝

    IPv4 記錄的地址由於僅有 32 位,預計在 2020 年前後就會分發完畢

    IPv6 的地址可以達到 128 位

    IP封包可達到 65535 bytes 


IP表頭內容

    

4 bits4 bits8 bits3 bits13 bits
VersionIHLType of ServiceTotal Length
IdentificationFlagsFragmentation Offset
Time To LiveProtocolHeader Checksum
Source Address
Destination Address
OptionsPadding
Data

以上每一行佔用的位數是32bits

  • Version(版本)
    宣告這個 IP 封包的版本,例如目前慣用的還是 IPv4 這個版本就在這裏宣告。

  • IHL(Internet Header Length, IP表頭的長度)
    告知這個 IP 封包的表頭長度,使用的單位應該是字組 (word) ,一個字組爲 4bytes 大小喔。

  • Type of Service(服務類型)
    這個項目的內容爲『PPPDTRUU』,表示這個 IP 封包的服務類型,主要分爲:
    PPP:表示此 IP 封包的優先度,目前很少使用;
    D:若爲 0 表示一般延遲(delay),若爲 1 表示爲低延遲;
    T:若爲 0 表示爲一般傳輸量 (throughput),若爲 1 表示爲高傳輸量;
    R:若爲 0 表示爲一般可靠度(reliability),若爲 1 表示高可靠度。
    UU:保留尚未被使用。
    舉例來說,gigabit 以太網絡的種種相關規格可以讓這個 IP 封包加速且降低延遲,某些特殊的標誌就是在這裏說明的。

  • Total Length(總長度)
    指這個 IP 封包的總容量,包括表頭與內容 (Data) 部分。最大可達 65535 bytes。

  • Identification(辨別碼)
    我們前面提到 IP 袋子必須要放在 MAC 袋子當中。不過,如果 IP 袋子太大的話,就得先要將 IP 再重組成較小的袋子然後再放到 MAC 當中。而當 IP 被重組時,每個來自同一個 IP 的小袋子就得要有個標識符以告知接收端這些小袋子其實是來自同一個 IP 封包才行。 也就是說,假如 IP 封包其實是 65536 那麼大 (前一個 Total Length 有規定), 那麼這個 IP 就得要再被分成更小的 IP 分段後才能塞進 MAC 訊框中。那麼每個小 IP 分段是否來自同一個 IP 資料,呵呵!那就是這個標識符的功用啦!

  • Flags(特殊旗標)
    這個地方的內容爲『0DM』,其意義爲:
    D:若爲 0 表示可以分段,若爲 1 表示不可分段
    M:若爲 0 表示此 IP 爲最後分段,若爲 1 表示非最後分段。

  • Fragment Offset(分段偏移)
    表示目前這個 IP 分段在原始的 IP 封包中所佔的位置。就有點像是序號啦,有這個序號才能將所有的小 IP 分段組合成爲原本的 IP 封包大小嘛!透過 Total Length, Identification, Flags 以及這個 Fragment Offset 就能夠將小 IP 分段在收受端組合起來囉!

  • Time To Live(TTL, 存活時間)
    表示這個 IP 封包的存活時間,範圍爲 0-255。當這個 IP 封包通過一個路由器時, TTL 就會減一,當 TTL 爲 0 時,這個封包將會被直接丟棄。說實在的,要讓 IP 封包通過 255 個路由器,還挺難的~ ^_^

  • Protocol Number(協定代碼)
    來自傳輸層與網絡層本身的其他數據都是放置在 IP 封包當中的, 這個字段就是記載每種數據封包協議名稱

    IP 內的號碼封包協議名稱(全名)
    1ICMP (Internet Control Message Protocol)
    2IGMP (Internet Group Management Protocol)
    3GGP (Gateway-to-Gateway Protocol)
    4IP (IP in IP encapsulation)
    6TCP (Transmission Control Protocol)
    8EGP (Exterior Gateway Protocol)
    17UDP (User Datagram Protocol)

    比較常見到的是TCP, UDP, ICMP 

  • Header Checksum(表頭檢查碼)
    用來檢查這個 IP 表頭的錯誤檢驗之用。

  • Source Address
    還用講嗎?當然是來源的 IP 地址,從這裏我們也知道 IP 是 32 位喔!

  • Destination Address
    有來源還需要有目標才能傳送,這裏就是目標的 IP 地址。

  • Options (其他參數)
    這個是額外的功能,提供包括安全處理機制、路由紀錄、時間戳、嚴格與寬鬆之來源路由等。

  • Padding(補齊項目)
    由於 Options 的內容不一定有多大,但是我們知道 IP 每個數據都必須要是 32 bits,所以,若 Options 的數據不足 32 bits 時,則由 padding 主動補齊。


IP地址的組成與分級

    IP封包的表頭最重要就是其中32位的來源與目標地址!這32bits的數值稱爲IP地址

    人們習慣十進制 就將32bits的IP分成四小段 每段8個bits 再將8個bits換算成十進制 所以是0.0.0.0~255.255.255.255

    同一網域(網段)的定義:在同一個物理網段內,每部主機的 IP 具有相同的 Net_ID ,並且具有獨特的 Host_ID    

    同一物理網段之內 可以依據不同的IP設定 設定成多個IP網段

    同一物理網段的主機的聯機 都透過CSMA/CD的功能直接在網段內用廣播進行網絡聯機 即直接網卡對網卡(MAC訊框)傳遞數據

    不同網段的聯機 由於廣播地址不同 需要路由器(router)將兩個網段連結在一起來聯機

    假設192.168.0爲Net_ID

    Network IP:192.168.0.0                 Host_ID全爲0整個網段的地址

    Broadcast IP: 192.168.0.255             Host_ID全爲1爲廣播地址

    192.168.0.1~254                               網段內可分配的主機IP 其中有一臺是路由器 與非本網段的主機聯機使用


InterNIC將整個IP網段分爲五種等級

Class A :   0.xx.xx.xx ~ 127.xx.xx.xx
Class B : 128.xx.xx.xx ~ 191.xx.xx.xx
Class C : 192.xx.xx.xx ~ 223.xx.xx.xx
Class D : 224.xx.xx.xx ~ 239.xx.xx.xx 用來羣播(multicast)的特殊功能(常用在大批計算機的網絡還原)
Class E : 240.xx.xx.xx ~ 255.xx.xx.xx 保留未使用


擔心IP數量不夠分配所以設定了私有IP 在ABC三類中各保留一段作爲私有IP

  • Class A:10.0.0.0    - 10.255.255.255

  • Class B:172.16.0.0  - 172.31.255.255

  • Class C:192.168.0.0 - 192.168.255.255

      

  • 私有 IP 的路由信息不能對外散播 (只能存在內部網絡);

  • 使用私有 IP 作爲來源或目的地址的封包,不能透過 Internet 來轉送 (不然網絡會混亂);

  • 關於私有 IP 的參考紀錄(如 DNS),只能限於內部網絡使用 (一樣的原理啦)


迴環網卡(lo) 127.0.0.1

    提供給系統內部原本就需要使用網絡接口的服務 (daemon) 所使用

    127.0.0.0/8 Class A中特殊的網段

    127.0.0.1/8 默認主機IP


私有IP連接Internet    

    設定一個簡單的防火牆加上 NAT (Network Address Transfer) 服務,你就可以透過 IP 僞裝  來使私有 IP 的計算機也可以連上 Internet !


Netmask: 子網掩碼 用來輔助IP 區分和劃分網段使用 

    Net_ID 和 Host_ID可以相互轉換

    使用Network/Netmask 來表示網域  因爲知道了Netmask就知道該網域的最大IP即Broadcast

    Class C舉例 192.168.0.0/24

    先記住八個位對應的數值  每位爲1時其他位爲0時 分別是 128 64 32 16 8 4 2 1

    增加Net_ID的位數 對應減少Host_ID位數 可以增加子網段的劃分  

        比如增加2位Net_ID

            網段個數 = 2^位數 = 4

            每個網段的Network分別是  0 和 256/網段個數 及其倍數  =192.168.0.0/64/128/192

            Netmask = 255.255.255.增加幾位就是 上邊八個數字的前幾個數字相加 = 255.255.255.192

    減少Net_ID的位數  對應增加Host_ID位數 可以增加將合併多個網段 進而增加網段的主機IP的數量

        比如減少1位 

            IP範圍到了 192.168.0.0~192.168.1.255 

            Netmask = 255.255.254.0(23)

            IP數量爲 2^8 * 2^位數


CIDR:網絡細分的情況太嚴重,爲了擔心路由信息過於龐大導致網絡效能不佳 所以

    減少Net_ID增加Host_ID 由Clacc C 變爲 Class B  192.168.0.0/16 192開頭的變成了Class B類 IP 就被稱爲CIDR 無等級網絡間路由


路由概念

    每部主機都有自己的路由表

    Gateway / Router :網關/路由器的功能就是在負責不同網域之間的封包轉遞 (IP Forwarding)

    靜態路由傳輸過程

        主機查詢IP封包表頭的目標IP地址

        分析自己的路由表 對比目標IP是否與自己的IP在同一網域

        如果不在同一網域 查詢是否有其他相符合的路由設定, 如果沒有直接將該IP封包送到預設路由器(default gateway)

        路由器同樣會依據上述流程繼續傳輸

        事實上, Internet 上面的路由協議與變化是相當複雜的並非靜態

    觀察主機路由

[root@www ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref  Use Iface192.168.0.0     0.0.0.0         255.255.255.0   U     0      0      0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0      0 lo
0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0      0 eth0# 上面輸出的數據共有八個字段,你需要注意的有幾個地方:
# Destination :其實就是 Network 的意思;
# Gateway     :就是該接口的 Gateway 那個 IP 啦!若爲 0.0.0.0 表示不需要額外的 IP;
# Genmask     :就是 Netmask 啦!與 Destination 組合成爲一部主機或網域;
# Flags       :共有多個旗標可以來表示該網域或主機代表的意義:
#               U:代表該路由可用;
#               G:代表該網域需要經由 Gateway 來幫忙轉遞;
#               H:代表該行路由爲一部主機,而非一整個網域;
# Iface       :Interface (網絡接口) 的意思。

     IP與MAC:鏈結層的ARP與RARP協定

        確定某個IP是屬於哪個以太網絡卡上時 主機會對整個網段放出ARP封包

        對方收到ARP封包會回傳他的MAC給主機 主機在ARP table(內存內)記錄20分鐘

[root@www ~]# arp -[nd] hostname
[root@www ~]# arp -s hostname(IP) Hardware_address選項與參數:
-n :將主機名以 IP 的型態顯示
-d :將 hostname 的 hardware_address 由 ARP table 當中刪除掉
-s :設定某個 IP 或 hostname 的 MAC 到 ARP table 當中 範例一:列出目前主機上面記載的 IP/MAC 對應的 ARP 表格[root@www ~]# arp -nAddress            HWtype  HWaddress           Flags Mask    Iface
192.168.1.100      ether   00:01:03:01:02:03      C          eth0
192.168.1.240      ether   00:01:03:01:DE:0A      C          eth0
192.168.1.254      ether   00:01:03:55:74:AB      C          eth0範例二:將 192.168.1.100 那部主機的網卡卡號直接寫入 ARP 表格中[root@www ~]# arp -s 192.168.1.100  01:00:2D:23:A1:0E# 這個指令的目的在建立靜態 ARP

    ICMP協議

        ICMP 也是網絡層的重要封包之一

        因爲Internet上有傳輸能力的就只有IP封包,所以ICMP被納入到IP封包中傳送

        命令 ping 和traceroute 就是利用的ICMP協議

        ICMP的類別

類別代號類別名稱與意義
0Echo Reply (代表一個響應信息)
3Destination Unreachable (表示目的地不可到達)
4Source Quench (當 router 的負載過高時,此類別碼可用來讓發送端停止發送訊息)
5Redirect (用來重新導向路由路徑的信息)
8Echo Request (請求響應消息)
11Time Exceeded for a Datagram (當數據封包在某些路由傳送的現象中造成逾時狀態,此類別碼可告知來源該封包已被忽略的訊息)
12Parameter Problem on a Datagram (當一個 ICMP 封包重複之前的錯誤時,會回覆來源主機關於參數錯誤的訊息)
13Timestamp Request (要求對方送出時間訊息,用以計算路由時間的差異,以滿足同步性協議的要求)
14Timestamp Reply (此訊息純粹是響應 Timestamp Request 用的)
15Information Request (在 RARP 協議應用之前,此訊息是用來在開機時取得網絡信息)
16Information Reply (用以響應 Infromation Request 訊息)
17Address Mask Request (這訊息是用來查詢子網 mask 設定信息)
18Address Mask Reply (響應子網 mask 查詢訊息的) 




TCP/IP的傳輸層相關封包與數據

被傳送出去的IP封包 到底會不會被接受,或者是有沒有被正確的接收 是傳送層的任務之一

傳輸層封包表頭信息

4 bits6 bits6 bits8 bits8 bits
Source PortDestination Port
Sequence Number
Acknowledge Number
Data
Offset
ReservedCodeWindow
ChecksumUrgent Pointer
OptionsPadding
Data
  • Source Port & Destination Port (來源端口 & 目標端口)

  • Sequence Number (封包序號)
    如果 TCP 數據大於要裝入的 IP 封包, 就得要進行分段。這個 Sequence Number 就是記錄每個封包的序號,可以讓收受端重新將 TCP 的數據組合起來。

  • Acknowledge Number (迴應序號)
    當一端收到另一端這個確認碼時,就能夠確定之前傳遞的封包已經被正確的收下了。

  • Data Offset (資料補償)
    IP封包中需要options項填補不足 而爲了要確認整個 TCP 封包的大小,就需要這個標誌來說明整個封包區段的起始位置。

  • Reserved (保留)
    未使用的保留字段。

  • Code (Control Flag, 控制標誌碼)
    聯機需要聯機的狀態,好讓接收端了解這個封包的主要動作。這個字段共有 6 個 bits ,分別代表 6 個句柄,若爲 1 則爲啓動。分別說明如下:

    其實每個項目都很重要,不過我們這裏僅對 ACK/SYN 有興趣而已,這樣未來在談到防火牆的時候,你纔會比較清楚爲啥每個 TCP 封包都有所謂的『狀態』條件!那就是因爲聯機方向的不同所致啊!


    • URG(Urgent):若爲 1 則代表該封包爲緊急封包, 接收端應該要緊急處理,且 Urgent Pointer 字段也會被啓用。

    • ACK(Acknowledge):若爲 1 代表這個封包爲響應封包, 則與上面提到的 Acknowledge Number 有關。

    • PSH(Push function):若爲 1 時,代表要求對方立即傳送緩衝區內的其他對應封包,而無須等待緩衝區滿了才送。 

    • RST(Reset):如果 RST 爲 1 的時候,表示聯機會被馬上結束,而無需等待終止確認手續。這也就是說, 這是個強制結束的聯機,且發送端已斷線。

    • SYN(Synchronous):若爲 1,表示發送端希望雙方建立同步處理, 也就是要求建立聯機。通常帶有 SYN 標誌的封包表示『主動』要連接到對方的意思。

    • FIN(Finish):若爲 1 ,表示傳送結束,所以通知對方數據傳畢, 是否同意斷線,只是發送者還在等待對方的響應而已。

  • Window (滑動窗口)
    主要是用來控制封包的流量的,可以告知對方目前本身有的緩衝器容量(Receive Buffer) 還可以接收封包。當 Window=0 時,代表緩衝器已經額滿,所以應該要暫停傳輸數據。 Window 的單位是 byte。

  • Checksum(確認檢查碼)
    當數據要由發送端送出前,會進行一個檢驗的動作,並將該動作的檢驗值標註在這個字段上; 而接收者收到這個封包之後,會再次的對封包進行驗證,並且比對原發送的 Checksum 值是否相符,如果相符就接受,若不符就會假設該封包已經損毀,進而要求對方重新發送此封包!

  • Urgent Pointer(緊急資料)
    這個字段是在 Code 字段內的 URG = 1 時纔會產生作用。可以告知緊急數據所在的位置。

  • Options(任意資料)
    目前此字段僅應用於表示接收端可以接收的最大數據區段容量,若此字段不使用, 表示可以使用任意資料區段的大小。這個字段較少使用。

  • Padding(補足字段)
    如同 IP 封包需要有固定的 32bits 表頭一樣, Options 由於字段爲非固定, 所以也需要 Padding 字段來加以補齊才行。同樣也是 32 bits 的整數。

特殊端口 port

    root纔可以啓動1024一下的端口

端口服務名稱與內容
20FTP-data,文件傳輸協議所使用的主動數據傳輸端口
21FTP,文件傳輸協議的命令通道
22SSH,較爲安全的遠程聯機服務器
23Telnet,早期的遠程聯機服務器軟件
25SMTP,簡單郵件傳遞協議,用在作爲 mail server 的埠口
53DNS,用在作爲名稱解析的領域名服務器
80WWW,這個重要吧!就是全球信息網服務器
110POP3,郵件收信協議,辦公室用的收信軟件都是透過他
443https,有安全加密機制的WWW服務器

Socket Pair

  • 來源 IP + 來源埠口 (Source Address + Source Port)

  • 目的 IP + 目的埠口 (Destination Address + Destination Port)

TCP的三次握手

wKiom1guZNfywVZeAABaveBfjqw753.png-wh_50

非連接導向的UDP協議

16 bits16 bits
Source PortDestination Port
Message LengthChecksum
Data

表頭數據較少,所以 UDP 就可以在 Data 處填入更多的資料

UDP 比較適合需要實時反應的一些數據流,例如影像實時傳送軟件

查詢主機名的 DNS 服務就同時提供了 UDP/TCP 











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章