TCP/IP協議棧 和IP地址規劃

TCP/IP IP地址的規劃

TCP/IP??Transmission Control Protocol /Internet Protocol

TCP/IP是一個Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等許多協議

和ISO參考模型的分層有對應關系

PA]OT6R$]G7CRYA2J37XL}8

應用層? (File transfer)

FTP ,? TFTP? ,pop3 (郵箱), imap? ,stp ,htps ,smtp (郵件)
–Network File System

E-mail? , smtp (郵件)

–Simple Mail Transfer Protocol

Remote login ,Telnet ,rlogin

Network management

–Simple Network Management Protocol

Name management

–Domain Name System? (NDS)53? ? 域名系統

 

傳輸層 (Transport)HTTP? 80

TCP? ? ? ? ?傳輸控制協議,通訊有協商過程,全雙工協議,半關閉? 可靠性,有數字編號,性能差,有錯誤檢? ? ? ? ? ? ? ? ? ?查糾錯功能,數據恢復重傳,數據包打成段排序,流量控制滑動窗口,擁塞控制,慢啟動和擁塞? ? ? ? ? ? ? ? ? ?避免算法,確認機制,E-mail,File shanring? 傳輸文件,Downloading? ?下載)

cat? /etc/service? ?可以查看應用程序的端口號

 

TCP? 包頭

NV%_2U[A89[76)6LYGO9)23

源端口、目標端口:計算機上的進程要和其他進程通信是要通過計算機端口的,而一個計算機端口某個時

刻能被一個進程占用,所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目

標端口是用16位表示的,可推算計算機的端口個數為2^16個

0-15 是源端口? ? ? ?16-31是目標端口? ? ? ?都是16位 二進制? 一共有2^16應用程序 (65536)

序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會

按順序編號。由于序列號由32位表示,所以每2^32個字節,就會出現序列號回繞,再次從0 開始

序列號最大2^32約等于40億CIJUOB(Z`UM`(}$TXNZE4LC

確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送發:我希望

你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號

確認包的編號,對方包發過來的序號

數據偏移:表示TCP報文段的首部長度,共4位,由于TCP首部包含一個長度可變的選項部分,需要指定這

個TCP報文段到底有多長。它指出TCP 報文段的數據起始處距離TCP 報文段的起始處有多遠。該字段的單

位是32位(即4個字節為計算單位),4位二進制最大表示15,所以數據偏移也就是TCP首部最大60字節

保留:是沒有使用

URG:表示本報文段中發送的數據是否包含緊急數據(緊急指針后面跟有效數字)

ACK:表示是否前面的確認號字段是否有效。ACK=1,表示有效。只有當ACK=1時,前面的確認號字段才

有效。TCP規定,連接建立后,ACK必須為1,帶ACK標志的TCP報文段稱為確認報文段

PSH:提示接收端應用程序應該立即從TCP接收緩沖區中讀走數據,為接收后續數據騰出空間。如果為1

,則表示對方應當立即把數據提交給上層應用,而不是緩存起來,如果應用程序不將接收到的數據

讀走

RST:如果收到一個RST=1的報文,說明與主機的連接出現了嚴重錯誤(如主機崩潰),必須釋放連接,

然后再重新建立連接?;蛘哒f明上次發送給主機的數據有問題,主機拒絕響應,帶RST標志的TCP? ? ? ? ? ? ? ? 報? 文段稱

SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;

當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連

接 的報

FIN:表示通知對方本端要關閉連接了,標記數據是否發送完畢。如果FIN=1,即告訴對方:“我的數據已

經發送完畢,你可以釋放連接了”,帶FIN標志的TCP報文段稱為結束報文段

 

 

TCP協議PORT? ?服務器端口

傳輸層通過port號,確定應用層協議? prot number

tcp:傳輸控制協議,面向連接的協議;通信前需要建立虛擬鏈路;結束后拆除鏈路? ? ? ?0-65535

udp:User Datagram Protocol,無連接的協議? ? ?0-65535

IANA:互聯網數字分配機構(負責域名,數字資源,協議分配)

0-1023:系統端口或特權端口(僅管理員可用) ,眾所周知,永久的分配給固定的系統應用使用

22/tcp(ssh),? ?80/tcp(http),? ?443/tcp(https)

1024-49151:用戶端口或注冊端口,但要求并不嚴格,分配給程序注冊為某應用使用

1433/tcp(SqlServer),? 1521/tcp(oracle),? ?3306/tcp(mysql)? , 11211/tcp/udp(memcached)

49152-65535:動態端口或私有端口,客戶端程序隨機使用的端口

Windows? 和liunx? ?查看端口號? 通用 netstat? -no? ? /? ? -nt

TCP三次握手

@N$$PFM4FCU7OZ9UQQV9`IO

 

TCP四次揮手

U}M)6@Y~QZ2E3C[P4RYC6TK

UDP? ? ? ? ?用戶數據協議,沒有數字編號,數據包錯誤就在從新傳輸,性能好(Voice 語音,?Video 視頻? )

工作在傳輸層 ,提供不可靠的網絡訪問, 非面向連接協議 , 有限的錯誤檢查 ,傳輸性能高, 無數據恢

復特性

UDP 包頭

Q7RJV{Y4$M8%U%ML`U`8]_S

Intrenet 層

Internet? ? prot? ? (IP 協議)

Internet? ?Control? ?Message? Protocol? (ICMP 協議)

ICMP 協議 判斷網絡狀態? ?,向對面主機發送數據包,(可以把包調大,判斷網絡穩定性 ping? IP? -s? 數? ? ? ? ? ? ? ? ? ?字)

Internet? group? management? protocol? (IGMP協議)多播應用

address? resolution? protocol? (ARP協議? 地址解析協議)廣播應用

arp? -n? 查看 處于TCP三系握手前執行拿到Mac地址

只能基于一個網絡段(IP的地址運算)跨路由 數據聯絡層的MAC地址始終變化? ARP得到地址金星通訊

reverse? address? resolution? protocol? (RARP反地址解析協議)

RARP? 與ARP剛好相反,用MAC地址查找IP地址 并且得到的地址是固定地址在(DHCP)獲取地址

Internet? ? ? ? ? ? ?IP? ? ? 協議特征

運行于OSI 網絡層? ,面向無連接的協議? ,獨立處理數據包? ,分層編址? ?盡力而為傳輸? ?無數據恢復功能

IP PDU 報頭

KGUA)$T]3$DP[V10@`3}MUN

 

版本:占4位,指IP 協議的版本目前的IP協議版本號為4

首部長度:占4位,可表示的最大數值是15個單位,一個單位為4字節,因此IP 的首部長度的最大值是60字節

區分服務:占8位,用來獲得更好的服務,在舊標準中叫做服務類型,但實際上一直未被使用過.后改名為區分服

務.只有在使用區分服務(DiffServ)時,這個字段才起作用.一般的情況下都不使用

總長度:占16位,指首部和數據之和的長度,單位為字節,因此數據報的最大長度為65535 字節.總長度必須不超

過最大傳送單元MTU

標識:占16位,它是一個計數器,通常,每發送一個報文,該值會加1,也用于數據包分片,在同一個包的若干

分片中,該值是相同的

標志(flag):占3位,目前只有后兩位有意義

DF:Don‘t Fragment,中間的一位,只有當DF=0 時才允許分片

MF:More Fragment,最高位,MF=1表示后面還有分片。MF=0 表示最后一個分片

片偏移:占12位,指較長的分組在分片后,該分片在原分組中的相對位置.片偏移以8個字節為偏移單位

生存時間:占8位,記為TTL (Time To Live) 數據報在網絡中可通過的路由器數的最大值,TTL 字段是由發送端

初始設置一個8 bit字段.推薦的初始值由分配數字RFC 指定,當前值為64.發送ICMP 回顯應答時

常把TTL設為最大值255

一般Linux ttl=46? ? windows? ttl=128? 路由器? ttl=255

用? ? echo? 128? > /proc/sys/net/ipv4/ip_defuault_ttl? ? 修改ttl值? (生存時間)

協議:占8位,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪個處理過程, 1

表示為ICMP 協議, 2表示為IGMP 協議, 6表示為TCP 協議, 17表示為UDP 協議

首部檢驗和:占16位,只檢驗數據報的首部不檢驗數據部分.這里不采用CRC 檢驗碼而采用簡單的計算方法

源地址和目的地址:都各占4字節,分別記錄源地址和目的地址

IP地址

它們可唯一標識IP 網絡中的每臺設備

每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址

 

有類地址分類

IP地址由兩部分組成:

網絡ID:? 標識網絡? ? ? ? ? ? ? ?每個網段分配一個網絡ID

主機ID:? 標識單個主機? ? ? ?由組織分配給各設備

IPv4地址格式:點分十進制記法

)(DE6WX}RG6Y05ET85YS%TM

A類:? 0 000 0000 -0 111 1111: 1-127

網絡數:126, 127? ? ? 每個網絡中的主機數:2^24-2? ? ?默認子網掩碼:255.0.0.0? ? ?私網地址:10.0.0.0

B類:10 00 0000 -10 11 1111:128-191

網絡數:2^14? ? ? ? ? ?每個網絡中的主機數:2^16-2? ? ? 默認子網掩碼:255.255.0.0

私網地址:172.16.0.0-172.31.0.0

C類: 110 0 0000 -110 1 1111: 192-223

網絡數:2^21? ? ? ? ? 每個網絡中的主機數:2^8-2? ? ? ? 默認子網掩碼:255.255.255.0

私網地址:192.168.0.0-192.168.255.0

D類:組播? ? ? ?1110 0000 -1110 1111: 224-239

E類:? ?240-255

無類地址分類

CIDR? ?無類域間路由? :網絡ID和主機ID數量不確定? (32位? IPV4)

netmask? 子網掩碼

網絡ID數? netmask對應的數是1

主機ID數 netmask對應的數字是0

按照有類分 A類是255.0.0.0

B類是255.255.0.0

C類是255.255.255.0

D和E是特殊類型 沒有子網掩碼

00000000? ? ? ? ? 0

10000000? ? ? ? ? 128

11000000? ? ? ? ? ?192

11100000? ? ? ? ? ? 224

11110000? ? ? ? ? ? ?240

11111000? ? ? ? ? ? 248

11111100? ? ? ? ? ? 252

11111110? ? ? ? ? ? ?254

11111111? ? ? ? ? ? ?255

例:172.20.0.123? ?網絡ID數為22? ? ?問? netmask?是多少

網絡ID是22? 就是22個1

主機ID是10個0(32-22=10)

255.255.252.0? ? ? 8個1是255? ? ?剩下6個1是 252

172.20.0.123/22 是無類間路由表示法? ?比子網掩碼更簡潔,更方便

例:200.222.123.23/26? 問 netmask?? 主機數?

netmask? 是 255.255.255.192

主機數? ?2^6-2=62

 

一個網絡的主機數量=2^主機ID位數-2=2^(32位-網絡ID位數)-2

劃分子網:將一個大網劃分 成小網(網絡ID向主機ID借位)

大網:主機多(主機ID位數多網絡ID數少)

小網:主機少(主機ID位數少網絡ID數多)

合并超網:多個小網合并成大網(主機ID向網絡ID借位)找共同點

可以提高網絡訪問效率,減少時間

 

公共IP地址:任何人都可以訪問

@XM6)H(XOJR[]$~JX(LR

私有IP地址 :給局域網用,互聯網不能訪問,

9EZHSWX%AP)84]OQM(XW4QT

 

特殊地址

0.0.0.0? : 不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網絡

255.255.255.255 :? 限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機

127.0.0.1~127.255.255.254:

本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的數據包

224.0.0.0到239.255.255.255:

組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于

些特定的程序以及多媒體程序

169.254.x.x:

如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務器獲取地址,系統會為

主機分配這樣地址

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/98541

(0)
祝韻杰-桃子祝韻杰-桃子
上一篇 2018-05-14
下一篇 2018-05-15

相關推薦

  • Linux的學習之旅

      Linux的文件系統層級結構標準FHS image.png /etc=====和主機相關的系統配置文件 edit the configure /home===== 用戶家目錄 /usr======二層分層的目錄。默認是最大的。 /dev=====設備文件 /media======掛載點和可移動的設備, /mnt=====臨時掛載點 /var==…

    Linux筆記 2018-04-01
  • 第二周作業20180521

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 Linux常用的文件管理命令為cp,mv,rm cp: 格式用法: 源文件為文件 目標文件不存在,則在目標文件夾中新建文件 目標文件存在,則進行文件覆蓋,通過-i提示是否進行覆蓋 源為目錄,cp后要加-r,復制文件夾以及其下所有文件夾的文件,目的需為目錄 多文件復制,目的必須為目錄且…

    2018-05-21
  • 系統啟動

    1 第一步 POST:Power-On-Self-Test,加電自檢 檢查負責完成對CPU、主 板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測 2 選擇第一個硬盤做為啟動設備 在硬盤里找第一個扇區 (MBR) 446個字節 屬于grub的 第一個階段 統稱為 bootloade 引導加載器 3 因為系統的啟動程序都放在b…

    Linux筆記 2018-05-13
  • Linux“文本三劍客”之grep

    Linux“文本三劍客”之grep grep,Global search REgular expression and Print out the line. 是Linux中常用的文本搜索工具,基于正則表達式(Regular Expression)和文本字符來編寫模式(Pattern),然后根據指定的模式對目標文本逐行進行匹配,打印匹配到的行。 grep工具…

    2018-05-14
  • 第二周

    tr 用來刪除轉換字符 -c 取反(補集) -d 刪除1表達的字符 -s代替每一個重復的字符(壓縮)-t讓第一個字符的數和第二個一致tr ‘a-z’ ‘A-Z’ 把大寫字母轉換成小寫字母hexdump c 加文件 查看文件的ascll編碼tr -d ‘/r’Windows文件轉換成Lin…

    Linux筆記 2018-04-08
  • 如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。

    #help man命令為Linux下的幫助指令,通過man命令可以哈看Linux中對應的命令手冊,劃分如下 1:用戶命令章節 2:系統調用命令章節 3:c庫調用章節 4:設備及特殊文件 5:配置文件的格式以及相關參數 6:游戲 7:雜項 8:管理命令

    Linux筆記 2018-05-13
欧美性久久久久