tcp ip詳解卷一讀後記

2021-09-25 03:44:50 字數 2840 閱讀 7300

1.tcp/ip是網路層的協議族,起源於美國60年代的研究專案,將網路進行了分層,共四層鏈路層(mac、交換機、網橋)、網路層(ip層、路由器;包括ip、icmp協議)、運輸層(tcp/udp)、應用層

2.網路的ip按照類別+網路號+主機號 總共32位(ipv4)分成了a、b、c、d、e五類**;這幾種型別也不夠使用了,因此劃分了子網,主機沒有辦法區分子網號、主機號,因此增加了子網掩碼的概念,子網掩碼非0的位就是主機號

3.dns是乙個分布的資料庫,用於主機號(網域名稱)和ip的對映

4.網路埠中1-255的知名埠,256-1024的linux系統埠

5.各層協議按照頭部包裹的方式一層一層

14位元組乙太網首部 + 20位元組ip首部 + 20位元組tcp首部|8位元組udp首部 + 應用資料 + 4位元組乙太網尾部

1.鏈路層是為上層ip層服務,運輸ip報文的,並支援arp、rarp協議;mac只管一跳,ip負責路由定址。

2.鏈路層協議包

6位元組目的mac位址 + 6位元組mac源位址 + 2位元組下一層協議型別 + 下一層資料報 + 4位元組crc冗餘校驗碼

3.鏈路層乙太網有最小傳輸大小為46位元組,最大傳輸單元mtu為1500,整條網路通路上的路徑mtu取決於路徑中最小的mtu

1.ip層是乙個不可靠的(不保證ip資料報傳送到達目的地,傳輸的可靠**由傳輸層去做)、負責將資料報文從源ip到目的ip的乙個無連線(不維護後續資料報的狀態、不保序)的網間協議。

2.ip層有20位元組的頭部資料

a.第乙個4位元組

4位版本號(版本號為4,所以叫ipv4) + 4位首部長度(因為首部有可選字段所以可能超過20位元組) + 8位服務型別(標識出使用最小延遲、最大吞吐、最可靠、最小費用) + 16位報文總長度(標識ip資料報的資料長度)

b.第二個4位元組

16位標識(用於標識是否屬於同乙個ip報文,是因為mtu導致的分片行為,多個分片的這16位標識是一樣的) + 3位標識(是否分片等) + 13位片偏移 由這幾個字段可以保證ip層有能力對資料進行分片,也可以對上層透明的進行分片重組,分片的過程可能是源主機也可能是在傳輸路上進行分片,甚至可能分片後的報文再次分片,如果設定了不可分片標誌但是不滿足mtu會收到icmp不可達

c.第三個4位元組

8位ttl生存時間(一般為64,每一跳路由就減1,如果為0則丟棄並返回給主機icmp報文目的不可達) + 8位協議(下一層包裹的協議是什麼tcp/udp/icmp) + 16位首部校驗和

d.第四個4位元組

32位源ip位址

e.第五個4位元組

32位目的ip位址

3. 在傳輸過程中ip選路比較簡單,一般主機選擇預設路由傳送,路由器中的ip路由表完成選路;搜尋路由表精確匹配、搜尋路由表網路號匹配、搜尋路由表尋找預設的表目 可以通過netstat -rn 檢視本機路由表

4. 路由選路策略根據icmp返回碼、rip選路資訊協議來動態更新路由表,rip是指相鄰的路由器之間會採用rip進行通訊,路由守護程序收到其他路由器傳送來的資訊更新核心中的路由表,另外還有其他的ospf、bgp、cidr等協議來支援路由策略

arp是通過根據ip位址獲取mac位址的位址解析協議,方法是傳送ip位址廣播到網路上所有主機

rarp是通過mac位址查詢ip位址的逆位址解析協議

icmp是ip層協議,但是又是在構建在ip層協議之上的,ip頭部 + icmp頭部構成報文,是網間控制協議,是網路不可達、埠不可達、主機不可達等等錯誤發生時反饋給主機的

ping命令使用的就是icmp協議

另外還有乙個演算法叫快速重傳,是指當連續收到3個重複ack時,則認為包有丟失不等待超時就進行重傳,對應的在擁塞控制中經常與快啟動一起使用;

快啟動是指當達到網路擁塞時候,並不是將cwnd置為1,而是置cwnd = ssthresh,從中間開始啟動,這是因為tcp認為連續收到3個ack認為網路還ok,並不是非常堵塞。

6.nagle演算法用於擁塞控制,是防止tcp小包太多導致的網路擁堵,nagle演算法要求網路上最多只有乙個未收到ack的小包存在,如果應用場景的確需要大量傳遞小包,可以通過tcp_nodelay來關閉演算法

7.基於tcp機制的攻擊和防範

tcp在連線過程中存在大量syn請求,可能存在syn攻擊,可以通過加固tcp/ip協議棧如調整最大半連線數,縮短超時時間、增加backlog佇列,限制syn併發等來防止這種ddos攻擊,還可以使用防火牆來**實現

tcp在斷開連線收的time_wait在高併發的短連線情況下,有可能導致服務沒法進行新的鏈結,可以通過修改/etc/sysctl.conf來處理

編輯核心檔案/etc/sysctl.conf,加入以下內容:

net.ipv4.tcp_syncookies = 1 表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1 表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。

net.ipv4.tcp_fin_timeout 修改系預設的 timeout 時間

《TCP IP詳解卷一》讀書筆記八 ICMP

由於工作需要和知識儲備,重新系統地學習網路方面的知識,先從 tcp ip詳解卷一 開始,對看書的大體內容進行簡單整理,在這裡進行記錄。記錄只是對知識的整理過程,並不追求面面俱到。處理icmpv6報文 未知的icmpv6差錯報文必須傳遞給上層產生差錯報文的程序 如果可能的話 未知的icmpv6資訊類報...

TCP IP詳解卷一 ARP RARP

1 arp提供ip位址到對應的硬體位址之間提供動態對映。2 arp的分組格式 3 tcpdump命令格式 1 0.00 0 c0 6f 2d 40ff ff ff ff ff ff arp 60 arp who has svr4 tell bsdi 4 arp 如果arp請求是從乙個網路的主機發往另...

TCP IP詳解 卷一 協議

第一章概述 第二章internet位址結構 第三章鏈路層 第四章位址解析協議 第五章internet協議 第六章系統配置 dhcp和自動配置 第七章防火牆和網路位址轉換 第八章icmpv4和icmpv6 internet控制報文協議 第九章廣播和本地組播 igmp和mld 第十章使用者資料報協議和i...