每日技術:讀《做爲前端的你瞭解多少tcp的內容》筆記

原文地址:做爲前端的你瞭解多少tcp的內容前端

 

學習筆記以下:服務器

 

OSI網絡分層,從上到下分別是:網絡

  • 應用層(Application)
  • 表示層(Presentation)
  • 會話層(Session)
  • 傳輸層(Transport)
  • 網絡層(Network)——路由器
  • 數據鏈路層(Data Link)——交換機
  • 物理層(Physical)——網卡、集線器(Hub)

 

抓包

利用百度首頁作一個抓包實驗tcp

1. 下載安裝wiresharkpost

 

2.wireshark初始界面長這樣,記得選擇一個網絡學習

3.菜單-捕獲-捕獲過濾器spa

選擇HTTP TCP port(80)或TCP only命令行

4.打開命令行窗口 ping www.baidu.com 得到ipblog

5.在應用顯示過濾器...的輸入框輸入:ip.addr==180.101.49.12(上面得到的ip)排序

 

觀察第一條protocol爲TCP的信息

Source: 咱們本地電腦的ip

Destination: 百度的服務器ip (表示咱們本地ip向百度服務器ip發了第一個包)

Info:

Seq=0 表示起始的數據信號是0

Win=64240 表示咱們這邊的窗口大小是64240

Len=0 表示咱們這邊但願接收的包的大小長度是0

MSS=1460 表示咱們這邊本次傳輸能接收的最大包的內容是1460

 

下面咱們模擬一下三次握手的對話內容:

A:B,你好,我是A,請求創建鏈接,個人seq=0,win=64240,我但願本次迴應個人內容長度len爲0,我本次能接收的最大內容是1460,over

B:A,你也好,收到你的信息了,我是B,我本次的seq是0(注意,雙方的序號是獨立計算的,這裏都從0開始),我回應你的ack是1(A的seq+1,表明我收到你seq是0的消息了),個人窗口大小是8192,我但願你迴應我本次消息的len也是0,我這邊能接收的最大回應大小是1452,over

A:好的,我收到你的迴應了,我如今給你發送的seq是1,我回應你的ack事1(B的seq+1),我當前的窗口大小是262656,我但願的迴應長度是0,咱們創建好鏈接了,over

這就是三次握手

爲何肯定一次鏈接須要三次握手?

 

1.tcp協議層是不關心ip的,具體ip的定位是由ip層來決定的,可是tcp層須要肯定端口號,因此他會攜帶source和destination的port信息,以便能找到對應的端口號

2.sequqnce number實際中使用的SEQ,也就是序號,這個序號起了很重要的做用。咱們都知道tcp和udp最大的區別在於tcp是穩定而且有序的。其中seq就能夠保證有序。當A向B發送一個數據包時,seq會疊加,每個傳輸方在傳送數據時都會帶上這個信息,另外一端能按照這個序號來排序收到信息的順序,從而保證了信息的傳遞是有序的,也能經過它來確認有沒有出現丟包的狀況。

相關文章
相關標籤/搜索