日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络编程小节

發布時間:2025/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络编程小节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.什么是C/S架構?

Client/Server架構,即客戶端/服務器架構。是大家熟知的軟件系統體系結構,通過將任務合理分配到Client端和Server端,降低了系統的通訊開銷,需要安裝客戶端才可進行管理操作。

2.互聯網協議是什么?分別介紹五層協議中每一層的功能?

互聯網協議是TCP/IP協議.

因特網協議棧共有五層:應用層、傳輸層、網絡層、鏈路層和物理層。不同于OSI七層模型這也是實際使用中使用的分層方式。?[1]? (1)應用層 支持網絡應用,應用協議僅僅是網絡應用的一個組成部分,運行在不同主機上的進程則使用應用層協議進行通信。主要的協議有:http、ftp、telnet、smtp、pop3等。 (2)傳輸層 負責為信源和信宿提供應用程序進程間的數據傳輸服務,這一層上主要定義了兩個傳輸協議,傳輸控制協議即TCP和用戶數據報協議UDP。 (3)網絡層 負責將數據報獨立地從信源發送到信宿,主要解決路由選擇、擁塞控制和網絡互聯等問題。 (4)數據鏈路層 負責將IP數據報封裝成合適在物理網絡上傳輸的幀格式并傳輸,或將從物理網絡接收到的幀解封,取出IP數據報交給網絡層。 (5)物理層 負責將比特流在結點間傳輸,即負責物理傳輸。該層的協議既與鏈路有關也與傳輸介質有關。 3.基于tcp協議通信,為何建立鏈接需要三次握手,而斷開鏈接卻需要四次揮手? 因為當Server端收到Client端的SYN連接請求報文后,可以直接發送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。但是關閉連接時,當Server端收到FIN報文時,很可能并不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴Client端,"你發的FIN報文我收到了"。只有等到我Server端所有的報文都發送完了,我才能發送FIN報文,因此不能一起發送。故需要四步握手。 4.為何基于tcp協議的通信比基于udp協議的通信更可靠? TCP最可靠的方式就是只要不得到確認,就重新發送數據報,直到得到對方的確認為止。
  • [1] 確認和重傳機制

    • 建立連接時三次握手同步雙方的“序列號 + 確認號 + 窗口大小信息”,是確認重傳、流控的基礎
    • 傳輸過程中,如果Checksum校驗失敗、丟包或延時,發送端重傳
  • [2] 數據排序

    • TCP有專門的序列號SN字段,可提供數據re-order
  • [3] 流量控制

    • 窗口和計時器的使用。TCP窗口中會指明雙方能夠發送接收的最大數據量
  • [4] 擁塞控制

    TCP的擁塞控制由4個核心算法組成。

    • “慢啟動”(Slow Start)

    • “擁塞避免”(Congestion avoidance)

    • “快速重傳 ”(Fast Retransmit)

    • “快速恢復”(Fast Recovery)

以上就是TCP比UDP傳輸更可靠的原因。

5.流式協議指的是什么協議,數據報協議指的是什么協議? 流式協議指的是TCP協議,數據包協議指的是UDP協議. 6.什么是socket?簡述基于tcp協議的套接字通信流程. Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部。 通信流程: 服務端:            客戶端: 1.生成socket對象.       1.生成socket對象  2.綁定ip和端口         2.發起到服務器的連接 3.監聽ip和端口         3.服務器接收后,開始發送數據 4.接受客戶端連接請求 5.接收數據 7.什么是粘包? socket 中造成粘包的原因是什么? 哪些情況會發生粘包現象? socket 為提高傳輸效率,發送方往往要收集到足夠多的數據后才發送一次數據給對方。若連續幾次需要send的數據都很少,通常TCP socket 會根據優化算法把這些數據合成一個TCP段后一次發送出去,這樣接收方就收到了粘包數據。

兩種情況下會發生粘包:

1.發送端需要等本機的緩沖區滿了以后才發送出去,造成粘包(發送數據時間間隔很端,數據很小,會合在一個起,產生粘包)

2.接收端不及時接收緩沖區的包,造成多個包接受(客戶端發送一段數據,服務端只收了一小部分,服務端下次再收的時候還是從緩沖區拿上次遺留的數據 ,就產生粘包)

?

轉載于:https://www.cnblogs.com/lovepy3/p/9252325.html

總結

以上是生活随笔為你收集整理的网络编程小节的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。