完整的一次tcp通訊,了解tcp網路5層模型

2021-10-22 14:45:36 字數 3197 閱讀 5981

##輸出http頭資訊到8,-e表示解析轉義字元\n

& 8##從8中讀取流資訊

http協議

傳送的http請求頭.

echo -e "get / http/1.0\n"  1>& 8
資料傳輸協議tcp 或 udp####tcp:面向連線,傳輸可靠.

#####面向連線(三次握手):

雙方資源開闢,拋出線程

#####傳輸字段解釋:

urg:緊急指標(urgent pointer)有效。

ack:確認序號有效。(為了與確認號ack區分開,我們用大寫表示)

psh:接收方應該盡快將這個報文交給應用層。

rst:重置連線。

syn:發起乙個新連線。

fin:釋放乙個連線。

socket 套接字:
是一對 ip+port -> ip+port

服務端,ip是固定的;

客戶端,ip的隨機的(0-65535)

linux中socket 會對映到fd/某個程序pid繫結.

四次分手:

三次握手到四次分手不可分割:

使用抓包工具抓取,檢視http請求(傳輸控制層)的全部過程:

抓包工具: tcpdump

## -nn 將每個監聽到的資料報中的網域名稱轉換成ip、埠從應用名稱轉換成埠號後顯示

## -i 指定監聽的網路介面(網絡卡);

## -x 把協議頭和包內容都原原本本的顯示出來

tcpdump -nn -i eth0 port 80

抓取結果:

由此結果可見,確認機制,保證傳輸可靠.檢視自身網路的一些配置:
ip=網路號+主機號開啟網絡卡設定:

cd /etc/sysconfig/network-scripts/

##編輯網絡卡配置檔案

網路層定址原理:
目標ip位址---->查詢路由表------>子網掩碼進行與運算—>和網路號做匹配–>如果找不到匹配的網路號–>進入閘道器(路由器,下一跳)

route -n

路由表

192.168.111:網路號.

192.168.111.2:下一跳(路由器)

下一跳怎麼找到下乙個下一跳?

​ 兩個相鄰結點之間傳送資料是直接傳送的(點對點),這時就需要使用專門的鏈路層的協議。

攜帶資料:

​ 現在找到了閘道器,現在有兩個ip,乙個是目標ip,乙個是閘道器ip,怎麼攜帶資料呢?

擴充套件唯一識別符號,每一台聯網裝置都有自己的mac位址,記錄在網絡卡中.

arp協議:

閘道器首先檢視自身的[apr快取表中是否有]目標ip位址的mac值,

我是192.168.1.5,我的硬體位址是"ff.ff.ff.ff.ff.fe".請問ip位址為192.168.1.1的mac位址是什麼?

首先將發過來的ip位址和mac位址,記錄到自己的arp快取表中,然後將自己的mac位址值傳送回去.

​ 這樣,主機a就知道了主機b的mac位址,它就可以向主機b傳送資訊了。同時a和b還同時都更新了自己的arp快取表.

apr協議的使用範圍:

1,在同一區域網內;

2,在一段鏈路中使用.

arp快取表
arp -a

發起的arp請求:

聯絡層資料報跳轉過程:

將發過來的ip位址和mac位址,記錄到自己的arp快取表中,然後將自己的mac位址值傳送回去.

​ 這樣,主機a就知道了主機b的mac位址,它就可以向主機b傳送資訊了。同時a和b還同時都更新了自己的arp快取表.

apr協議的使用範圍:
1,在同一區域網內;

2,在一段鏈路中使用.

arp快取表
arp -a

發起的arp請求:

聯絡層資料報跳轉過程:

完整的TCP通訊包實現

using system namespace jh.sockets 執行緒狀態引數 class parm public parm jhthreadstatus nstatus,object obj jhthreadstatus status object objparm 上下文物件 public o...

一次完整的HTTP通訊過程

http通訊機制是在一次完整的http通訊過程中,web瀏覽器與web伺服器之間將完成下列7個步驟 在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp ip協議族,因此internet又被稱作...

解析一次TCP連線的過程

這是我的第一篇部落格 介紹一下自己 我是一名小小的網管,是乙個塵世中的迷茫小書童。作為一名網管,要學的東西很雜,很多。譬如我,公司是乙個跨境電商,自己有自己的一套erp系統。我的工作是 電腦的硬體知識 一些桌面的運維的知識 一些手機的知識 公司有pda 一些無線網路的知識 一些linux的知識 還有...