TCP UDP是如何傳輸的?

2022-05-29 11:24:09 字數 2418 閱讀 8598

一、網路模型:

osi參考模型

tcp/ip參考模型

網路中裝置的標識

不易記憶,可用主機名

埠號:用於標識程序的邏輯位址,不同程序的標識

有效埠: 0~65535,其中0~1024系統使用或者保留埠

傳輸協議:通訊的規則 

常見的協議: tcp、 udp

三、socket

就是為了網路服務提供的一種機制;通訊的兩端都有socket;網路通訊其實就是socket間的通訊;資料在兩個socket間通過io傳輸。

四、tcp和udp

tcp: 建立連線、在連線中進行傳輸、通過三次握手完成連線(是可靠協議)、效率會稍低

socket和serversocket

傳輸步驟:

1、建立客戶端和伺服器端

2、建立連線後,通過socket中的io流進行資料的傳輸

3、關閉socket

————客戶端和伺服器端是兩個獨立的執行程式

客戶端:通過socket建立物件並指定要連線的服務端主機以及埠

socket s = new socket(「192.168.1.1」,9999);

outputstream out =s.getoutputstream();

out.write(「hello」.getbytes());

s.close();

伺服器端:建立服務端需要監聽的乙個埠

serversocket ss = new serversocket(9999);

socket s =ss.accept ();

inputstream in =s.getinputstream();

byte buf = new

byte[1024];

int num =in.read(buf);

string str = new string(buf,0,num);

system.out.println(s.getinetaddress().tostring()+」:」+str);

s.close();

ss.close();

udp:不需要建立連線、將資料及源和目的封裝成包(限制在64k內)、不可靠協議、速度快

datagramsocket與datagrampacket

傳輸步驟:

1、建立傳送端,接收端;

2、建立資料報;  

3、呼叫socket的傳送接受方法;

4、關閉socket

————傳送端和接受端是兩個獨立的執行程式

傳送端:

datagramsocket ds = new

datagramsocket();

byte by =「hello,udp」.getbytes();

datagrampacket dp = new datagrampacket(by,0,by.length,

inetaddress.getbyname(「127.0.0.1」),10000);

ds.send(dp);

ds.close();

接受端:

datagramsocket ds = new datagramsocket(10000);

byte by = new

byte[1024];

datagrampacket dp = new

datagrampacket(by,by.length);

ds.receive(dp);

string str = new string(dp.getdata(),0,dp.getlength());

system.out.println(str+"--"+dp.getaddress());

ds.close();

小練習:

udp聊天程式:1.通過鍵盤錄入獲取要傳送的資訊;2.將發生和接受分別封裝到兩個執行緒中。

~~~~~問題分析:

tcp傳輸最容易出現的問題:1、客戶端連線上服務端,兩端都在等待,沒有任何資料傳輸; 2、因為read方法或者readline方法是阻塞式。《解決辦法》1.自定義結束標記 2.使用shutdowninput, shutdownoutput方法。  

test:

1、建立乙個群聊伺服器端。

2、客戶端向服務端上傳乙個。

3、客戶端向服務端傳送使用者名稱請求登入,服務端通過驗證,返回「歡迎光臨」,未通過則返回「使用者不存在」。

tcp UDP如何實現可靠傳輸

1 tcp如何實現可靠性傳輸?確認機制 重傳機制 滑動視窗。1.1可靠性 1 應用資料被分割成tcp認為最適合傳送的資料塊。這和udp完全不同,應用程式產生的資料長度將保持不變。由tcp傳遞給ip的資訊單位稱為報文段或段 2 當tcp發出乙個段後,它啟動乙個定時器,等待目的端確認收到這個報文段。如果...

傳輸層和TCP UDP

層傳輸層 定義了一些傳輸資料的協議和埠號 www埠80等 如 tcp 傳輸控制協議,傳輸效率低,可靠性強,用於傳輸可靠性要求高,資料量大的資料 udp 使用者資料報協議,與tcp特性恰恰相反,用於傳輸可靠性要求不高,資料量小的資料,如qq聊天資料就是通過這種方式傳輸的 主要是將從下層接收的資料進行分...

傳輸層協議(TCP UDP協議)

tcp和udp都是 tcp ip協議族的傳輸層協議tcp將若干個位元組構成乙個分組,叫報文段 tcp報文段封裝在ip資料報中 tcp建立連線的過程稱為三次握手 女孩想了想認真的問男孩子 你真的要和我在一起嗎?你真的喜歡我嗎 男孩肯定的回答 我是認真的,在一起吧 還有一種情況 男孩在表白女孩後,女孩確...