1.什麼是c/s架構?
c : client(客戶端) s : server(服務端)
通過c/s架構可以實現網路通訊
2.網際網路協議是什麼?分別介紹五層協議中每一層的功能?
網際網路協議就是計算機界的英語,網路就是物理鏈結介質+網際網路協議
osi七層:
應用層表示層
會話層傳輸層
網路層資料鏈路層
物理層tcp/ip四層/五層:
應用層 應用層 :軟體 qq 暴風
傳輸層 傳輸層 :建立埠到埠的通訊 0-65535 0-1023為系統占用埠 tcp ucp
網路層 網路層 :ip+mac 能找到全世界唯一的計算機 ip:找到哪乙個區域網 mac:找到那一台機器
資料鏈路層 介面層 :定義電訊號的分組方式
物理層 : 傳送01010101...電訊號
3.基於tcp協議通訊,為何建立鏈結需要三次握手,而斷開鏈結卻需要四次揮手
三次握手:client接收請求建立通道,server傳送請求也建通道 , client傳送可以建立,通過三次握手可以建立雙向通道
四次揮手:client接收請求,server同意請求,server傳送請求,client接收請求
4.為何基於tcp協議的通訊比基於udp協議的通訊更可靠?
tcp:可靠 對方給了確認收到資訊,才發下乙個,如果沒收到確認資訊就重發
udp:不可靠 一直發資料,不需要對方回應
5.流式協議指的是什麼協議,資料報協議指的是什麼協議?
流式協議: tcp協議,可靠傳輸
資料報協議: udp協議,不可傳輸
6.什麼是socket?簡述基於tcp協議的套接字通訊流程
socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部。
服務端:建立socket物件,繫結ip埠bind(), 設定最大鏈結數listen(), accept()與客戶端的connect()建立雙向管道, send(), recv(),close()
客戶端:建立socket物件,connect()與服務端accept()建立雙向管道 , send(), recv(),close()
7.什麼是粘包? socket 中造成粘包的原因是什麼? 哪些情況會發生粘包現象?
粘包:資料粘在一起,主要因為:接收方不知道訊息之間的界限,不知道一次性提取多少位元組的資料造成的
資料量比較小,時間間隔比較短,就合併成了乙個包,這是底層的乙個優化演算法(nagle演算法)
網路程式設計練習
題目 客戶端和服務端連線,且任一方可以中斷連線 服務端 import socket sk socket.socket 預設引數 使用基於網路型別的套接字,tcp協議 sk.bind 127.0.0.1 65534 回環位址,就是自己這台機器,這樣寫的話別的電腦就找不到你 sk.listen conn...
Java 網路程式設計 練習
inetaddress類使用 1,返回本地主機 inetaddress locahhost inetaddress.getlocalhost system.out println 本地主機為 locahhost 2,獲取此 ip 位址的主機名。string hostname locahhost.ge...
C 網路程式設計練習
1 把網路轉化為image,獲取網路直接stream轉化 private image imagefromweb string url 2網路請求總結,方法1,直接利用streamreader,讀取所有資料,獲取字串 3 將stream網路流直接轉化為byte public static byte s...