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 20:33
下一篇 2018-05-15 09:33

相關推薦

  • 4.8整理

    根據教學順序整理

    Linux筆記 2018-04-08
  • Linux上的文件管理類命令

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。(1)目錄管理命令——ls:列出指定目錄下的內容格式:ls [OPTION]… [FILE]…-a:顯示所有文件包括隱藏文件-A:顯示除.和..之外的所有文件-l,–long:顯示文件的詳細屬性信息-h:對文件大小進行單位換算,可能影響精度-d:查…

    Linux筆記 2018-05-19
  • ssh等

    SSH端口轉發 SSH會自動的加密和解密所有SSH客戶端與服務器之間的網絡數據;同時也可以將其他TCP端口的數據加密轉發,這一過程叫“隧道”,這樣也可以減少防火墻開啟的端口。 實現過程是數據首先通過連接本機的某一個端口,被當做ssh協議數據發送給ssh服務器,ssh服務器解密再發給遠程主機的端口 本地轉發: -L localport:remotehost:r…

    2018-05-28
  • 7月9日~7月15日(第四周作業)

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 ~]# cp -r ?/etc/skel ? ?/home/tuser1 ~]#chmod -R go-rwx ?/home/tuser1 2.編輯/etc/group文件,添加組hadoop 編輯/etc/group 寫入…

    Linux筆記 2018-07-16
  • 正則表達式淺解

    正則表達式:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義,而表示控制或通配的功能。 擴展正則表達式元字符: 字符匹配:. 匹配任意單個字符[] 匹配指定范圍內的任意單個字符[^] 匹配指定范圍外的任意單個字符[:alnum:] 字母和數字[:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z[:lower:] 小…

    2018-04-07
  • linux第二周

    總結

    Linux筆記 2018-04-08
欧美性久久久久