色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FTP客戶端發送數據到FTP服務器端,詳述其工作過程

傳感器技術 ? 來源:未知 ? 作者:李倩 ? 2018-10-25 15:14 ? 次閱讀

一、FTP客戶端發送數據到FTP服務器端,詳述其工作過程。

兩臺機器的連接情況如下圖所示:

詳細解答如下

1.1、假設初始設置如下所示:

客戶端FTP端口號為:32768

服務器端FTP端口號為:21

1.2、不同網絡段上的兩臺計算機通過TCP/IP協議通訊的過程如下所示:協議是水平的,服務是垂直的。

物理層,指的是電信號的傳遞方式,透明的傳輸比特流。

鏈路層,在兩個相鄰結點間的線路上無差錯地傳送以幀為單位的數據。

網絡層,負責為分組交換網上的不同主機提供通信,數據傳送的單位是分組或包。

傳輸層,負責主機中兩個進程之間的通信,數據傳輸的單位是報文段。網絡層負責點到點(point-to-point)的傳輸(這里的“點”指主機或路由器),而傳輸層負責端到端(end-to-end)的傳輸(這里的“端”指源主機和目的主機)。

1.3、數據包的封裝過程

不同的協議層對數據包有不同的稱謂,在傳輸層叫做段(segment),在網絡層叫做數據報(datagram),在鏈路層叫做幀(frame)。數據封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部,最后將應用層數據交給應用程序處理。兩臺計算機在不同的網段中,那么數據從一臺計算機到另一臺計算機傳輸過程中要經過一個或多個路由器。1.4、工作過程

(1)在PC1客戶端,將原始數據封裝成幀,然后通過物理鏈路發送給Switch1的端口1。形成的幀為:

注:發送方怎樣知道目的站是否和自己在同一個網絡段?每個IP地址都有網絡前綴,發送方只要將目的IP地址中的網絡前綴提取出來,與自己的網絡前綴比較,若匹配,則意味著數據報可以直接發送。也就是說比較二者的網絡號是否相同。本題中,PC1和PC2在兩個網絡段。

(2)Switch1收到數據并對數據幀進行校驗后,查看目的MAC地址,得知數據是要發送給PC2,所以Switch1就對數據幀進行存儲轉發,查看自己的MAC地址列表后,從端口2將數據轉發給路由器的S0端口。

(3)Router收到數據后,先對數據進行校驗,然后對IP數據報進行分析,重新對數據進行封裝,查看路由表后,從S1端口將數據發送出去,此時得到新的數據幀如下:

注:目的IP和源IP地址不會被改的,改變的是MAC,路由器會把遠端的源MAC地址改成下一跳的MAC地址,然后就發送出去

(4)Switch2接收到Router給它發送的數據后,進行校驗后直接存儲轉發,查看自己的MAC地址列表后,將數據幀從端口1發送給PC2服務器端。

(5)PC2服務器端收到數據后,先進行校驗,然后進行拆分,得到TCP報文段,由此可以知道目的端口號是21,然后把數據交付給相應的FTP應用進程進行處理。

二、在數據的傳輸中會出現以下一些問題,該如何解決?

1、針對數據鏈路層,傳輸的數據會出現差錯或者丟失的問題,也有兩端傳輸速度不同的問題,如何解決這些問題?答:首先我們假設主機A向主機B發送數據

(1)差錯控制

差錯控制方法分兩類,一類是自動請求重發ARQ,另一類是前向糾錯FEC,也叫前向糾錯碼(Forward Error Correction簡稱FEC)。

在ARQ方式中,當接收端發現差錯時,就設法通知發送端重發,直到收到正確的碼字為止,ARQ方式只使用檢錯碼。

在FEC方式中,接收端不但能發現差錯,而且能確定二進制碼元發生錯誤的位置,從而加以糾正,FEC方式必須使用糾錯碼。常用的糾錯碼有奇偶校驗碼、循環冗余碼和海明碼等例如:在數據幀中加上CRC,這樣主機B就可以檢驗所接收的數據是否有差錯,如果有差錯,那么主機B可以向主機A發送一個否認幀NAK,以表示主機A應當重傳出現差錯的那個數據幀。(2)丟失的解決辦法

超時重傳。如果主機A在發送完數據給主機B之后,若到了超時計時器所設置的重傳時間而還沒有收到主機B的任何確認幀ACK,則主機A就重傳前面所發送的這一數據幀。(3)流量控制

①假設主機A向主機B傳輸的數據是無差錯的,那么,最簡單的流量控制方法就是:發送方每發送一幀數據就暫時停下來,接收方收到數據幀之后就交付給主機,然后發一信息給發送方,表示接收的任務已經完成,這時,發送方再接著發送下一個數據幀。在這種情況下,接收方的接收緩存的大小只要能夠裝得下一個數據幀即可。

②滑動窗口:分別在發送端和接收端設置發送窗口和接收窗口

發送窗口用來對發送端進行流量控制,為發送窗口的大小WT就是代表在還沒有收到對方確認信息的情況下發送端最多可以發送多少個數據幀。每收到對一個幀的確認,發送窗口就向前滑動一個位置。由此也可以知道,第一種流量控制發法中,WT=1。

在接收端設置接收窗口時為了控制可以接收哪些數據而不可以接收哪些數據,在接收端只有當收到的數據幀的發送序號落入接收窗口內才允許將該數據幀收下。每收到一個序號正確的幀,接收窗口就向前滑動一個位置。2、IP數據報有它的長度,而數據傳輸過程中,一些中間設備也有一個相關的設置MTU(最大傳輸單元),如果現在假設IP數據報的長度是5000字節,而MTU設置是1500字節,那么該怎么辦?答:解決的辦法是對IP數據報進行分片與重組。詳細過程如下:2.1、 IP v4數據報格式

一個IP v4數據報由報頭和數據兩部分組成,其中數據包括高層需要傳輸的數據,而報頭是為了正確傳輸高層數據而增加的控制信息。報頭的前一部分是固定長度,共20字節,是所有IP數據報必須具有的。在報頭的固定部分的后面是一些可選字段,其長度是可變的。下圖給出了IPv4數據報的格式義。

IP數據報的格式

2.2、不同數據鏈路層協議的MTU值

一個路由器可能連接不同MTU的網絡,如下圖

2.3、IP數據報分片

數據報分片時,每個分片前都要加上相應的IP報頭,形成新的IP數據報,除包含一些分片控制域(如標志、偏移量)外,分片的報頭和原IP數據報的報頭基本一樣。

標識符、標志、偏移量3個字段在IP報頭中的作用是:標識:占16bit,標識數據報。當數據報長度超出網絡最大傳輸單元(MTU)時,必須要進行分割,并且需要為分割段(fragment)提供標識。所有屬于同一數據報的分割段被賦予相同的標識值。標志:占3bit,指出該數據報是否可分段。目前只有前兩個比特有意義。

標志字段中的最低位記為MF(More Fragment)。MF=1即表示后面“還有分片”的數據報。MF=0表這已是若干數據報片中的最后一個。標志字段中間的一位記為DF(Don’t Fragment)。只有當DF=0時才允許分片。片偏移:占13bit,若有分段時,用以指出該分段在數據報中的相對位置,也就是說,相對于用戶數據字段的起點,該片從何處開始。片偏移以8字節為偏移單位,即每個分片的長度一定是8字節(64Bit)的整數倍。

2.4、IP數據報重組

在最終的目的主機上將接收到的所有分片進行重新組裝的過程就是IP數據報重組。這時要根據數據報的標識、標志、偏移量等字段將分段的各個IP數據報重新組裝成完整的原始數據報。

2.5本題的詳解過程

數據報的數據部分為5000字節長(使用固定首部),需要分片長度不超過1500字節的數據報片。因固定首部長度為20字節,因此每個數據報片的長度不能超過1480字節。于是分為4個數據報片,其數據報片的數據部分長度分別為1480字節、1480字節、1480字節和560字節。原始數據報首部被復制為各數據報片的首部,但必須修改有關字段的值。分片結果如下圖所示:

3、兩個主機的應用進程,也會出現差錯和丟失,兩端的緩存也不同,如何控制流量?應用進程如何與端口號進行匹配?

答:因為運輸層提供的功能是應用進程之間的邏輯通信,所以面向連接的傳輸控制協議TCP就保證了全雙工的可靠交付的服務。具體的有關差錯控制和流量控制如下面的詳細解釋:

3.1、運輸層為相互通信的應用進程提供了邏輯通信,如下圖所示:

3.2、TCP發送報文段的示意圖如下:

3.3、TCP 的數據編號與確認

TCP 協議是面向字節的。TCP 將所要傳送的報文看成是字節組成的數據流,并使每一個字節對應于一個序號。

在連接建立時,雙方要商定初始序號。TCP 每次發送的報文段的首部中的序號字段數值表示該報文段中的數據部分的第一個字節的序號。

TCP 的確認是對接收到的數據的最高序號表示確認。接收端返回的確認號是已收到的數據的最高序號加 1。因此確認號表示接收端期望下次收到的數據中的第一個數據字節的序號。

3.4、TCP 的流量控制與擁塞控制

(1)滑動窗口(進行流量控制)

TCP 采用大小可變的滑動窗口進行流量控制。窗口大小的單位是字節。在 TCP 報文段首部的窗口字段寫入的數值就是當前給對方設置的發送窗口數值的上限。

發送窗口在連接建立時由雙方商定。但在通信的過程中,接收端可根據自己的資源情況,隨時動態地調整對方的發送窗口上限值(可增大或減小)。

上圖(a)表示發送端要發送 900 字節長的數據,劃分為 9 個 100 字節長的報文段,而發送窗口確定為 500 字節。發送端只要收到了對方的確認,發送窗口就可前移。發送 TCP 要維護一個指針。每發送一個報文段,指針就向前移動一個報文段的距離。

上圖(b)表示發送端已發送了 400 字節的數據,但只收到對前 200 字節數

據的確認,同時窗口大小不變。現在發送端還可發送 300 字節。上圖(c)表示發送端收到了對方對前 400 字節數據的確認,但對方通知發送端必須把窗口減小到 400 字節。現在發送端最多還可發送 400 字節的數據。利用可變窗口大小進行流量控制雙方確定的窗口值是 400,如下圖所示:

(2)擁塞控制

為了更好地進行擁塞控制,因特網標準推薦使用一下三種技術,慢啟動(slow_start)、加速遞減(multiplicative decrease)和擁塞避免(congestion avoidance)。

“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措施要完全避免網絡擁塞還是不可能的。“擁塞避免”是說在擁塞避免階段把擁塞窗口控制為按線性規律增長,使網絡比較不容易出現擁塞。3.5、端口號的識別

(1)端口的概念:

端口就是運輸層服務訪問點 TSAP。

端口的作用就是讓應用層的各種應用進程都能將其數據通過端口向下交付給運輸層,以及讓運輸層知道應當將其報文段中的數據向上通過端口交付給應用層相應的進程。

從這個意義上講,端口是用來標志應用層的進程。

(2)端口在進程之間的通信中所起的作用

(3)端口號

端口用一個 16 bit 端口號進行標志。

端口號只具有本地意義,即端口號只是為了標志本計算機應用層中的各進程。在因特網中不同計算機的相同端口號是沒有聯系的。

端口號分為兩類:

一類是熟知端口,其數值一般為 0~1023。當一種新的應用程序出現時,必須為它指派一個熟知端口。

另一類則是一般端口,用來隨時分配給請求通信的客戶進程。

端口的作用可用下圖來表示:

(4)插口

TCP 使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時將 TCP 連接的端點稱為插口(socket),或套接字、套接口。插口包括IP地址(32bit)和端口號(16bit),共48bit。插口和端口、IP 地址的關系是:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據傳輸
    +關注

    關注

    9

    文章

    1915

    瀏覽量

    64662
  • 服務器
    +關注

    關注

    12

    文章

    9219

    瀏覽量

    85594
  • FTP
    FTP
    +關注

    關注

    0

    文章

    110

    瀏覽量

    40654

原文標題:數據傳輸過程詳解

文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用lwip socket udp功能,開發板為客戶端時不能夠接收服務器端發送過來的數據

    請教下,使用 lwip socket udp 功能,開發板為客戶端時不能夠接收服務器端發送過來的數據 ? 1,如果開發板為 服務器端,收發
    發表于 04-16 06:01

    qt tcp程序在服務器端發送數據之前能接收客戶端發送數據嗎?

    寫了一個tcp的客戶端服務器端,是服務器端客戶端發送文件,但是我想在服務器端
    發表于 04-22 20:06

    labview怎么實現服務器端一直等待客戶端發送數據

    我現在在做labview的服務器端,但是當客戶端發送數據結束后,我的服務器端會報錯。報錯的意思就是說客戶
    發表于 08-12 14:34

    怎么設置一個客戶端FTP服務器下載一個文件

    嗨,我必須設置一個客戶端FTP服務器下載一個文件。和諧的FTP驅動程序只在我理解的情況下作為服務器工作
    發表于 12-29 16:21

    請問如何用labview上傳到ftp

    我想通過labview的ftp控件傳送文件ftp服務器上,但是一直上傳不成功,求指教。下面我先說一下我的配置:服務器端:1、創建了
    發表于 03-24 21:48

    免費又好用的Linux FTP客戶端工具介紹

    FTP服務器支持文件傳輸協議,這是互聯網交換程序和數據文件的標準。基本上講FTP站點是提供文件下載的網站。下面將介紹的是幾個最好又免費的Linux
    發表于 07-11 07:50

    怎么用key0,key2控制服務器端客戶端知道有數據發送請求的?

    原子用key0,key2控制服務器端客戶端有請求數據發送,是如何知道有數據發送請求的,沒看明白
    發表于 07-29 04:17

    為什么LWIP的TCP客戶端服務器端斷開后繼續發送數據就無法檢測到連接狀態?

    發現LWIP的TCP客戶端有個BUG,當服務器端開之后,如果還繼續發送數據,那就不能檢測到連接狀態。求助求助
    發表于 10-29 20:26

    ESP-12E是否有任何FTP客戶端庫?

    用作 FTP 服務器,但我的真正目標是在線將文件上傳到 FTP 服務器。我寫了一些代碼來登錄和設置被動連接,但我希望是否有任何現成的 FTP
    發表于 02-23 06:49

    計算機的客戶端服務器

    計算機的客戶端服務器 一般說來,互聯網上的所有計算機可以分成兩種類型:服務器客戶端。向其他計算機提供服務(如Web
    發表于 08-05 08:57 ?1849次閱讀

    在線安全FTP客戶端

    注意:除非您自己托管在線FTP客戶端,否則會無意間將FTP的身份驗證數據提交到在線服務。如果可能,建議對主機進行自我托管,并且在使用這些在線
    的頭像 發表于 07-24 16:39 ?2987次閱讀
    在線安全<b class='flag-5'>FTP</b><b class='flag-5'>客戶端</b>

    FTP服務構成及FTP服務器介紹

    用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位于FTP服務器上的資源。 在開發網站的時候,通常利用
    的頭像 發表于 08-22 14:22 ?5663次閱讀

    數據是怎么樣保證準確的從客戶端發送服務器端

    你有想過嗎,在計算機網絡當中,數據是怎么樣保證準確的從客戶端發送服務器端的?中間涉及到了哪些理論?
    的頭像 發表于 07-01 10:09 ?2105次閱讀

    FTP服務器搭建詳細步驟

    FTP服務器是一種用于文件傳輸的服務器,它可以讓用戶通過FTP客戶端上傳和下載文件。FTP
    的頭像 發表于 04-12 14:39 ?3.2w次閱讀

    ftp服務器有什么作用?

    、文件傳輸:FTP服務器的核心功能是促進客戶端(通常是用戶的計算機)和服務器之間的文件傳輸。用戶可以將文件上傳到服務器,也可以從
    的頭像 發表于 09-19 17:24 ?5655次閱讀
    主站蜘蛛池模板: 久久这里只有热精品18| 色翁荡熄月月| 亚洲性无码AV久久成人| 九九这里有精品| 最近日本MV字幕免费观看视频| 尿了么app| 国产黄a三级三级三级| 亚洲免费精品| 美女胸网站| 国产精品麻豆AV| 主播蜜汁丝袜精品自拍| 日本特黄网站| 交video| 99热久久这里只精品国产WWW | 饱满奶大30p| 亚洲成av人影院| 欧美日韩中文国产一区| 国产人妻人伦精品无码.麻豆| 在线观看免费国产成人软件| 欧美亚洲综合另类无码| 国产亚洲精品久久777777| 4455永久在线毛片观看| 偷拍久久国产视频免费| 久久永久影院免费| 国产AV一区二区三区日韩| 一本之道高清www在线观看| 日本大尺码喷液过程视频| 久9青青cao精品视频在线| 刮伦人妇A极一片| 中国xxxxxxxxx孕交| 我的年轻漂亮继坶三级| 年轻的老师5理伦片| 好男人社区| 东日韩二三区| 4399日本电影完整版在线观看免费 | 精品无码国产污污污免费网站2 | 国产 高清 无码 在线播放| 伊人久久大香线蕉综合高清| 三级网站午夜三级| 欧美91精品久久久久网免费| 黄色毛片a|