中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

經(jīng)營(yíng)性網(wǎng)站備案需要哪些東西愛(ài)站網(wǎng)關(guān)鍵詞密度查詢(xún)

經(jīng)營(yíng)性網(wǎng)站備案需要哪些東西,愛(ài)站網(wǎng)關(guān)鍵詞密度查詢(xún),公司網(wǎng)站建設(shè)泉州,青海高端網(wǎng)站建設(shè)公司1、TCP與UDP區(qū)別總結(jié):1、TCP面向連接(如打電話(huà)要先撥號(hào)建立連接);UDP是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接 2、TCP提供可靠的服務(wù)。也就是說(shuō),通過(guò)TCP連接傳送的數(shù)據(jù),無(wú)差錯(cuò),不丟失&#xff…

1、TCP與UDP區(qū)別總結(jié):1、TCP面向連接(如打電話(huà)要先撥號(hào)建立連接);UDP是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接
2、TCP提供可靠的服務(wù)。也就是說(shuō),通過(guò)TCP連接傳送的數(shù)據(jù),無(wú)差錯(cuò),不丟失,不重復(fù),且按序到達(dá);UDP盡最大努力交付,即不保證可靠交付
Tcp通過(guò)校驗(yàn)和,重傳控制,序號(hào)標(biāo)識(shí),滑動(dòng)窗口、確認(rèn)應(yīng)答實(shí)現(xiàn)可靠傳輸。如丟包時(shí)的重發(fā)控制,還可以對(duì)次序亂掉的分包進(jìn)行順序控制。
3、UDP具有較好的實(shí)時(shí)性,工作效率比TCP高,適用于對(duì)高速傳輸和實(shí)時(shí)性有較高的通信或廣播通信。
4.每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多的交互通信
5、TCP對(duì)系統(tǒng)資源要求較多,UDP對(duì)系統(tǒng)資源要求較少。

2、為什么UDP有時(shí)比TCP更有優(yōu)勢(shì)?
UDP以其簡(jiǎn)單、傳輸快的優(yōu)勢(shì),在越來(lái)越多場(chǎng)景下取代了TCP,如實(shí)時(shí)游戲。
(1)網(wǎng)速的提升給UDP的穩(wěn)定性提供可靠網(wǎng)絡(luò)保障,丟包率很低,如果使用應(yīng)用層重傳,能夠確保傳輸?shù)目煽啃浴?br /> (2)TCP為了實(shí)現(xiàn)網(wǎng)絡(luò)通信的可靠性,使用了復(fù)雜的擁塞控制算法,建立了繁瑣的握手過(guò)程,由于TCP內(nèi)置的系統(tǒng)協(xié)議棧中,極難對(duì)其進(jìn)行改進(jìn)。
采用TCP,一旦發(fā)生丟包,TCP會(huì)將后續(xù)的包緩存起來(lái),等前面的包重傳并接收到后再繼續(xù)發(fā)送,延時(shí)會(huì)越來(lái)越大,基于UDP對(duì)實(shí)時(shí)性要求較為嚴(yán)格的情況下,采用自定義重傳機(jī)制,能夠把丟包產(chǎn)生的延遲降到最低,盡量減少網(wǎng)絡(luò)問(wèn)題對(duì)游戲性造成影響。

3、UDP和TCP編程步驟也有些不同,如下:
TCP: TCP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個(gè)socket,用函數(shù)socket(); ? ? SOCKET SocketListen =socket(AF_INET,SOCK_STREAM,
?IPPROTO_TCP); 2、設(shè)置socket屬性,用函數(shù)setsockopt(); * 可選 3、綁定IP地址、端口等信息到socket上,用函數(shù)bind();
?SOCKET_ERROR = bind(SocketListen,(const sockaddr*)&addr,sizeof(addr)) 4、開(kāi)啟監(jiān)聽(tīng),用函數(shù)listen(); ? ? ? ? ? ? ? ? SOCKET_ERROR
?== listen(SocketListen,2) 5、接收客戶(hù)端上來(lái)的連接,用函數(shù)accept(); ? ?SOCKET SocketWaiter
?= accept(SocketListen,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? _Out_ ? ?struct
?sockaddr *addr
?_Inout_ ?int
?*addrlen); 6、收發(fā)數(shù)據(jù),用函數(shù)send()和recv(),或者read()和write(); 7、關(guān)閉網(wǎng)絡(luò)連接; closesocket(SocketListen);closesocket(SocketWaiter); 8、關(guān)閉監(jiān)聽(tīng); SOCK_STREAM這種的特點(diǎn)是面向連接的,即每次收發(fā)數(shù)據(jù)之前必須通過(guò)connect建立連接,而SOCK_DGRAM這種是User
?Datagram Protocol協(xié)議的網(wǎng)絡(luò)通訊,它是無(wú)連接的,不可靠的。TCP編程的客戶(hù)端一般步驟是: 1、創(chuàng)建一個(gè)socket,用函數(shù)socket(); 2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選 3、綁定IP地址、端口等信息到socket上,用函數(shù)bind();* 可選 4、設(shè)置要連接的對(duì)方的IP地址和端口等屬性; 5、連接服務(wù)器,用函數(shù)connect(); 6、收發(fā)數(shù)據(jù),用函數(shù)send()和recv(),或者read()和write(); 7、關(guān)閉網(wǎng)絡(luò)連接;
int send(
? _In_ ?SOCKET s, ? ? ? ? //向哪個(gè)socket發(fā)送,accept返回的socket。
? _In_ ?const char *buf,
? _In_ ?int len,
? _In_ ?int flags
); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 由于

send(SocketClient,(const char *)&fh,sizeof(fh),0);

recv(SocketClient,szbuf,sizeof(szbuf),0);UDP:與之對(duì)應(yīng)的UDP編程步驟要簡(jiǎn)單許多,分別如下: UDP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個(gè)socket,用函數(shù)socket(); 2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選 3、綁定IP地址、端口等信息到socket上,用函數(shù)bind(); 4、循環(huán)接收數(shù)據(jù),用函數(shù)recvfrom(); 5、關(guān)閉網(wǎng)絡(luò)連接; UDP編程的客戶(hù)端一般步驟是: 1、創(chuàng)建一個(gè)socket,用函數(shù)socket(); 2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選 3、綁定IP地址、端口等信息到socket上,用函數(shù)bind();* 可選 4、設(shè)置對(duì)方的IP地址和端口等屬性; 5、發(fā)送數(shù)據(jù),用函數(shù)sendto(); 6、關(guān)閉網(wǎng)絡(luò)連接;

int recvfrom(
? _In_ ? ? ? ? SOCKET s, ? ? ? //綁定的socket
? _Out_ ? ? ? ?char *buf,
? _In_ ? ? ? ? int len,
? _In_ ? ? ? ? int flags,
? _Out_ ? ? ? ?struct sockaddr *from, ?//用來(lái)接收對(duì)方的
? _Inout_opt_ ?int *fromlen
);
int nres=recvfrom(pThis->m_socketListen,szBuf,sizeof(szBuf),0,(sockaddr*)&addrClient,&nSize);//0處標(biāo)志位sendto(m_socketListen,szBuffer,nSize,0,(const sockaddr*)&addr,sizeof(sockaddr_in))TCP和UDP是OSI模型中的運(yùn)輸層中的協(xié)議。TCP提供可靠的通信傳輸,而UDP則常被用于讓廣播和細(xì)節(jié)控制交給應(yīng)用的通信傳輸。

4、將socket設(shè)置為廣播屬性bool optval=true;setsockopt(m_socketListen,SOL_SOCKET,SO_BROADCAST,(const char *)&optval,sizeof(bool));
5、將Socket設(shè)置為非阻塞。//bool benable=true;//ioctlsocket(m_socketListen,FIONBIO,(u_long*)&benable);
6、Tcp頭,20字節(jié)


7、UDP首部,8個(gè)字節(jié)
?

?

?

概念理解
首先咱們弄清楚,TCP協(xié)議和UCP協(xié)議與TCP/IP協(xié)議的聯(lián)系,很多人犯糊涂了,一直都是說(shuō)TCP/IP協(xié)議與UDP協(xié)議的區(qū)別,我覺(jué)得這是沒(méi)有從本質(zhì)上弄清楚網(wǎng)絡(luò)通信!
TCP/IP協(xié)議是一個(gè)協(xié)議簇。里面包括很多協(xié)議的。UDP只是其中的一個(gè)。之所以命名為T(mén)CP/IP協(xié)議,因?yàn)門(mén)CP,IP協(xié)議是兩個(gè)很重要的協(xié)議,就用他兩命名了。
TCP/IP協(xié)議集包括應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,網(wǎng)絡(luò)訪(fǎng)問(wèn)層。
其中應(yīng)用層包括:
超文本傳輸協(xié)議(HTTP):萬(wàn)維網(wǎng)的基本協(xié)議.
文件傳輸(TFTP簡(jiǎn)單文件傳輸協(xié)議):
遠(yuǎn)程登錄(Telnet),提供遠(yuǎn)程訪(fǎng)問(wèn)其它主機(jī)功能,它允許用戶(hù)登錄
internet主機(jī),并在這臺(tái)主機(jī)上執(zhí)行命令.
網(wǎng)絡(luò)管理(SNMP簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議),該協(xié)議提供了監(jiān)控網(wǎng)絡(luò)設(shè)備的方法,以及配置管理,統(tǒng)計(jì)信息收集,性能管理及安全管理等.
域名系統(tǒng)(DNS),該系統(tǒng)用于在internet中將域名及其公共廣播的網(wǎng)絡(luò)節(jié)點(diǎn)轉(zhuǎn)換成IP地址.
其次網(wǎng)絡(luò)層包括:
Internet協(xié)議(IP)
Internet控制信息協(xié)議(ICMP)
地址解析協(xié)議(ARP)
反向地址解析協(xié)議(RARP)
最后說(shuō)網(wǎng)絡(luò)訪(fǎng)問(wèn)層:網(wǎng)絡(luò)訪(fǎng)問(wèn)層又稱(chēng)作主機(jī)到網(wǎng)絡(luò)層(host-to-network).網(wǎng)絡(luò)訪(fǎng)問(wèn)層的功能包括IP地址與物理地址硬件的映射,以及將IP封裝成幀.基于不同硬件類(lèi)型的網(wǎng)絡(luò)接口,網(wǎng)絡(luò)訪(fǎng)問(wèn)層定義了和物理介質(zhì)的連接.
當(dāng)然我這里說(shuō)得不夠完善,TCP/IP協(xié)議本來(lái)就是一門(mén)學(xué)問(wèn),每一個(gè)分支都是一個(gè)很復(fù)雜的流程,但我相信每位學(xué)習(xí)軟件開(kāi)發(fā)的同學(xué)都有必要去仔細(xì)了解一番。
下面我著重講解一下TCP協(xié)議和UDP協(xié)議的區(qū)別。

常用的熟知端口號(hào)

?


應(yīng)用程序
FTP
TFTP
TELNET
SMTP
DNS
HTTP
SSH
MYSQL

?


熟知端口
21,20
69
23
25
53
80
22
3306


傳輸層協(xié)議
TCP
UDP
TCP
TCP
UDP
TCP

?


TCP(Transmission Control Protocol,傳輸控制協(xié)議)
TCP的概述
TCP把連接作為最基本的對(duì)象,每一條TCP連接都有兩個(gè)端點(diǎn),這種斷點(diǎn)我們叫作套接字(socket),它的定義為端口號(hào)拼接到IP地址即構(gòu)成了套接字,例如,若IP地址為192.3.4.16 而端口號(hào)為80,那么得到的套接字為192.3.4.16:80。
TCP報(bào)文首部

源端口和目的端口,各占2個(gè)字節(jié),分別寫(xiě)入源端口和目的端口;
序號(hào),占4個(gè)字節(jié),TCP連接中傳送的字節(jié)流中的每個(gè)字節(jié)都按順序編號(hào)。例如,一段報(bào)文的序號(hào)字段值是 301 ,而攜帶的數(shù)據(jù)共有100字段,顯然下一個(gè)報(bào)文段(如果還有的話(huà))的數(shù)據(jù)序號(hào)應(yīng)該從401開(kāi)始;
確認(rèn)號(hào),占4個(gè)字節(jié),是期望收到對(duì)方下一個(gè)報(bào)文的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)。例如,B收到了A發(fā)送過(guò)來(lái)的報(bào)文,其序列號(hào)字段是501,而數(shù)據(jù)長(zhǎng)度是200字節(jié),這表明B正確的收到了A發(fā)送的到序號(hào)700為止的數(shù)據(jù)。因此,B期望收到A的下一個(gè)數(shù)據(jù)序號(hào)是701,于是B在發(fā)送給A的確認(rèn)報(bào)文段中把確認(rèn)號(hào)置為701;
數(shù)據(jù)偏移,占4位,它指出TCP報(bào)文的數(shù)據(jù)距離TCP報(bào)文段的起始處有多遠(yuǎn);
保留,占6位,保留今后使用,但目前應(yīng)都位0;
緊急URG,當(dāng)URG=1,表明緊急指針字段有效。告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù);
確認(rèn)ACK,僅當(dāng)ACK=1時(shí),確認(rèn)號(hào)字段才有效。TCP規(guī)定,在連接建立后所有報(bào)文的傳輸都必須把ACK置1;
推送PSH,當(dāng)兩個(gè)應(yīng)用進(jìn)程進(jìn)行交互式通信時(shí),有時(shí)在一端的應(yīng)用進(jìn)程希望在鍵入一個(gè)命令后立即就能收到對(duì)方的響應(yīng),這時(shí)候就將PSH=1;
復(fù)位RST,當(dāng)RST=1,表明TCP連接中出現(xiàn)嚴(yán)重差錯(cuò),必須釋放連接,然后再重新建立連接;
同步SYN,在連接建立時(shí)用來(lái)同步序號(hào)。當(dāng)SYN=1,ACK=0,表明是連接請(qǐng)求報(bào)文,若同意連接,則響應(yīng)報(bào)文中應(yīng)該使SYN=1,ACK=1;
終止FIN,用來(lái)釋放連接。當(dāng)FIN=1,表明此報(bào)文的發(fā)送方的數(shù)據(jù)已經(jīng)發(fā)送完畢,并且要求釋放;
窗口,占2字節(jié),指的是通知接收方,發(fā)送本報(bào)文你需要有多大的空間來(lái)接受;
13 .檢驗(yàn)和,占2字節(jié),校驗(yàn)首部和數(shù)據(jù)這兩部分;
緊急指針,占2字節(jié),指出本報(bào)文段中的緊急數(shù)據(jù)的字節(jié)數(shù);
選項(xiàng),長(zhǎng)度可變,定義一些其他的可選的參數(shù)。

是面向連接的協(xié)議,也就是說(shuō),在收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。一個(gè)TCP連接必須要經(jīng)過(guò)三次“對(duì)話(huà)”才能建立起來(lái),其中的過(guò)程非常復(fù)雜,只簡(jiǎn)單的描述下這三次對(duì)話(huà)的簡(jiǎn)單過(guò)程:主機(jī)A向主機(jī)B發(fā)出連接請(qǐng)求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次對(duì)話(huà);主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺(tái)主機(jī)一個(gè)在發(fā)送,一個(gè)在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時(shí)候發(fā)?”,這是第二次對(duì)話(huà);主機(jī)A再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在就發(fā),你接著吧!”,這是第三次對(duì)話(huà)。三次“對(duì)話(huà)”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過(guò)三次“對(duì)話(huà)”之后,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。
TCP連接的建立(三次握手)

最開(kāi)始的時(shí)候客戶(hù)端和服務(wù)器都是處于CLOSED狀態(tài)。主動(dòng)打開(kāi)連接的為客戶(hù)端,被動(dòng)打開(kāi)連接的是服務(wù)器。
1

TCP服務(wù)器進(jìn)程先創(chuàng)建傳輸控制塊TCB,時(shí)刻準(zhǔn)備接受客戶(hù)進(jìn)程的連接請(qǐng)求,此時(shí)服務(wù)器就進(jìn)入了LISTEN(監(jiān)聽(tīng))狀態(tài);
TCP客戶(hù)進(jìn)程也是先創(chuàng)建傳輸控制塊TCB,然后向服務(wù)器發(fā)出連接請(qǐng)求報(bào)文,這是報(bào)文首部中的同部位SYN=1,同時(shí)選擇一個(gè)初始序列號(hào) seq=x ,此時(shí), TCP客戶(hù)端進(jìn)程進(jìn)入了 SYN-SENT(同步已發(fā)送狀態(tài))狀態(tài)。TCP規(guī)定,SYN報(bào)文段(SYN=1的報(bào)文段)不能攜帶數(shù)據(jù),但需要消耗掉一個(gè)序號(hào)。
TCP服務(wù)器收到請(qǐng)求報(bào)文后,如果同意連接,則發(fā)出確認(rèn)報(bào)文。確認(rèn)報(bào)文中應(yīng)該 ACK=1,SYN=1,確認(rèn)號(hào)是ack=x+1,同時(shí)也要為自己初始化一個(gè)序列號(hào) seq=y,此時(shí),TCP服務(wù)器進(jìn)程進(jìn)入了SYN-RCVD(同步收到)狀態(tài)。這個(gè)報(bào)文也不能攜帶數(shù)據(jù),但是同樣要消耗一個(gè)序號(hào)。
TCP客戶(hù)進(jìn)程收到確認(rèn)后,還要向服務(wù)器給出確認(rèn)。確認(rèn)報(bào)文的ACK=1,ack=y+1,自己的序列號(hào)seq=x+1,此時(shí),TCP連接建立,客戶(hù)端進(jìn)入ESTABLISHED(已建立連接)狀態(tài)。TCP規(guī)定,ACK報(bào)文段可以攜帶數(shù)據(jù),但是如果不攜帶數(shù)據(jù)則不消耗序號(hào)。
當(dāng)服務(wù)器收到客戶(hù)端的確認(rèn)后也進(jìn)入ESTABLISHED狀態(tài),此后雙方就可以開(kāi)始通信了。


為什么TCP客戶(hù)端最后還要發(fā)送一次確認(rèn)呢?
一句話(huà),主要防止已經(jīng)失效的連接請(qǐng)求報(bào)文突然又傳送到了服務(wù)器,從而產(chǎn)生錯(cuò)誤。
如果使用的是兩次握手建立連接,假設(shè)有這樣一種場(chǎng)景,客戶(hù)端發(fā)送了第一個(gè)請(qǐng)求連接并且沒(méi)有丟失,只是因?yàn)樵诰W(wǎng)絡(luò)結(jié)點(diǎn)中滯留的時(shí)間太長(zhǎng)了,由于TCP的客戶(hù)端遲遲沒(méi)有收到確認(rèn)報(bào)文,以為服務(wù)器沒(méi)有收到,此時(shí)重新向服務(wù)器發(fā)送這條報(bào)文,此后客戶(hù)端和服務(wù)器經(jīng)過(guò)兩次握手完成連接,傳輸數(shù)據(jù),然后關(guān)閉連接。此時(shí)此前滯留的那一次請(qǐng)求連接,網(wǎng)絡(luò)通暢了到達(dá)了服務(wù)器,這個(gè)報(bào)文本該是失效的,但是,兩次握手的機(jī)制將會(huì)讓客戶(hù)端和服務(wù)器再次建立連接,這將導(dǎo)致不必要的錯(cuò)誤和資源的浪費(fèi)。
如果采用的是三次握手,就算是那一次失效的報(bào)文傳送過(guò)來(lái)了,服務(wù)端接受到了那條失效報(bào)文并且回復(fù)了確認(rèn)報(bào)文,但是客戶(hù)端不會(huì)再次發(fā)出確認(rèn)。由于服務(wù)器收不到確認(rèn),就知道客戶(hù)端并沒(méi)有請(qǐng)求連接。
TCP連接的釋放(四次揮手)

數(shù)據(jù)傳輸完畢后,雙方都可釋放連接。最開(kāi)始的時(shí)候,客戶(hù)端和服務(wù)器都是處于ESTABLISHED狀態(tài),然后客戶(hù)端主動(dòng)關(guān)閉,服務(wù)器被動(dòng)關(guān)閉。
1

客戶(hù)端進(jìn)程發(fā)出連接釋放報(bào)文,并且停止發(fā)送數(shù)據(jù)。釋放數(shù)據(jù)報(bào)文首部,FIN=1,其序列號(hào)為seq=u(等于前面已經(jīng)傳送過(guò)來(lái)的數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)加1),此時(shí),客戶(hù)端進(jìn)入FIN-WAIT-1(終止等待1)狀態(tài)。 TCP規(guī)定,FIN報(bào)文段即使不攜帶數(shù)據(jù),也要消耗一個(gè)序號(hào)。
服務(wù)器收到連接釋放報(bào)文,發(fā)出確認(rèn)報(bào)文,ACK=1,ack=u+1,并且?guī)献约旱男蛄刑?hào)seq=v,此時(shí),服務(wù)端就進(jìn)入了CLOSE-WAIT(關(guān)閉等待)狀態(tài)。TCP服務(wù)器通知高層的應(yīng)用進(jìn)程,客戶(hù)端向服務(wù)器的方向就釋放了,這時(shí)候處于半關(guān)閉狀態(tài),即客戶(hù)端已經(jīng)沒(méi)有數(shù)據(jù)要發(fā)送了,但是服務(wù)器若發(fā)送數(shù)據(jù),客戶(hù)端依然要接受。這個(gè)狀態(tài)還要持續(xù)一段時(shí)間,也就是整個(gè)CLOSE-WAIT狀態(tài)持續(xù)的時(shí)間。
客戶(hù)端收到服務(wù)器的確認(rèn)請(qǐng)求后,此時(shí),客戶(hù)端就進(jìn)入FIN-WAIT-2(終止等待2)狀態(tài),等待服務(wù)器發(fā)送連接釋放報(bào)文(在這之前還需要接受服務(wù)器發(fā)送的最后的數(shù)據(jù))。
服務(wù)器將最后的數(shù)據(jù)發(fā)送完畢后,就向客戶(hù)端發(fā)送連接釋放報(bào)文,FIN=1,ack=u+1,由于在半關(guān)閉狀態(tài),服務(wù)器很可能又發(fā)送了一些數(shù)據(jù),假定此時(shí)的序列號(hào)為seq=w,此時(shí),服務(wù)器就進(jìn)入了LAST-ACK(最后確認(rèn))狀態(tài),等待客戶(hù)端的確認(rèn)。
客戶(hù)端收到服務(wù)器的連接釋放報(bào)文后,必須發(fā)出確認(rèn),ACK=1,ack=w+1,而自己的序列號(hào)是seq=u+1,此時(shí),客戶(hù)端就進(jìn)入了TIME-WAIT(時(shí)間等待)狀態(tài)。注意此時(shí)TCP連接還沒(méi)有釋放,必須經(jīng)過(guò)2??MSL(最長(zhǎng)報(bào)文段壽命)的時(shí)間后,當(dāng)客戶(hù)端撤銷(xiāo)相應(yīng)的TCB后,才進(jìn)入CLOSED狀態(tài)。
服務(wù)器只要收到了客戶(hù)端發(fā)出的確認(rèn),立即進(jìn)入CLOSED狀態(tài)。同樣,撤銷(xiāo)TCB后,就結(jié)束了這次的TCP連接??梢钥吹?#xff0c;服務(wù)器結(jié)束TCP連接的時(shí)間要比客戶(hù)端早一些。


為什么客戶(hù)端最后還要等待2MSL?
MSL(Maximum Segment Lifetime),TCP允許不同的實(shí)現(xiàn)可以設(shè)置不同的MSL值。

第一,保證客戶(hù)端發(fā)送的最后一個(gè)ACK報(bào)文能夠到達(dá)服務(wù)器,因?yàn)檫@個(gè)ACK報(bào)文可能丟失,站在服務(wù)器的角度看來(lái),
? ? ?我已經(jīng)發(fā)送了FIN+ACK報(bào)文請(qǐng)求斷開(kāi)了,客戶(hù)端還沒(méi)有給我回應(yīng),應(yīng)該是我發(fā)送的請(qǐng)求斷開(kāi)報(bào)文它沒(méi)有收到,
? ? ?于是服務(wù)器又會(huì)重新發(fā)送一次,而客戶(hù)端就能在這個(gè)2MSL時(shí)間段內(nèi)收到這個(gè)重傳的報(bào)文,接著給出回應(yīng)報(bào)文,并且會(huì)重啟2MSL計(jì)時(shí)器。

第二,防止類(lèi)似與“三次握手”中提到了的“已經(jīng)失效的連接請(qǐng)求報(bào)文段”出現(xiàn)在本連接中。客戶(hù)端發(fā)送完最后一個(gè)確認(rèn)報(bào)文后,
?? ?在這個(gè)2MSL時(shí)間中,就可以使本連接持續(xù)的時(shí)間內(nèi)所產(chǎn)生的所有報(bào)文段都從網(wǎng)絡(luò)中消失。這樣新的連接中不會(huì)出現(xiàn)舊連接的請(qǐng)求報(bào)文。
12345678
為什么建立連接是三次握手,關(guān)閉連接確是四次揮手呢?
建立連接的時(shí)候, 服務(wù)器在LISTEN狀態(tài)下,收到建立連接請(qǐng)求的SYN報(bào)文后,把ACK和SYN放在一個(gè)報(bào)文里發(fā)送給客戶(hù)端。?
而關(guān)閉連接時(shí),服務(wù)器收到對(duì)方的FIN報(bào)文時(shí),僅僅表示對(duì)方不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù),而自己也未必全部數(shù)據(jù)都發(fā)送給對(duì)方了,所以己方可以立即關(guān)閉,
也可以發(fā)送一些數(shù)據(jù)給對(duì)方后,再發(fā)送FIN報(bào)文給對(duì)方來(lái)表示同意現(xiàn)在關(guān)閉連接,因此,己方ACK和FIN一般都會(huì)分開(kāi)發(fā)送,從而導(dǎo)致多了一次。
123
UDP(User Data Protocol,用戶(hù)數(shù)據(jù)報(bào)協(xié)議)
(1) UDP是一個(gè)非連接的協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時(shí)就簡(jiǎn)單地去抓取來(lái)自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度、計(jì)算機(jī)的能力和傳輸帶寬的限制;在接收端,UDP把每個(gè)消息段放在隊(duì)列中,應(yīng)用程序每次從隊(duì)列中讀一個(gè)消息段。
(2) 由于傳輸數(shù)據(jù)不建立連接,因此也就不需要維護(hù)連接狀態(tài),包括收發(fā)狀態(tài)等,因此一臺(tái)服務(wù)機(jī)可同時(shí)向多個(gè)客戶(hù)機(jī)傳輸相同的消息。
(3) UDP信息包的標(biāo)題很短,只有8個(gè)字節(jié),相對(duì)于TCP的20個(gè)字節(jié)信息包的額外開(kāi)銷(xiāo)很小。
(4) 吞吐量不受擁擠控制算法的調(diào)節(jié),只受應(yīng)用軟件生成數(shù)據(jù)的速率、傳輸帶寬、源端和終端主機(jī)性能的限制。
(5)UDP使用盡最大努力交付,即不保證可靠交付,因此主機(jī)不需要維持復(fù)雜的鏈接狀態(tài)表(這里面有許多參數(shù))。
(6)UDP是面向報(bào)文的。發(fā)送方的UDP對(duì)應(yīng)用程序交下來(lái)的報(bào)文,在添加首部后就向下交付給IP層。既不拆分,也不合并,而是保留這些報(bào)文的邊界,因此,應(yīng)用程序需要選擇合適的報(bào)文大小。
我們經(jīng)常使用“ping”命令來(lái)測(cè)試兩臺(tái)主機(jī)之間TCP/IP通信是否正常,其實(shí)“ping”命令的原理就是向?qū)Ψ街鳈C(jī)發(fā)送UDP數(shù)據(jù)包,然后對(duì)方主機(jī)確認(rèn)收到數(shù)據(jù)包,如果數(shù)據(jù)包是否到達(dá)的消息及時(shí)反饋回來(lái),那么網(wǎng)絡(luò)就是通的。
TCP與UDP的區(qū)別:
1.基于連接與無(wú)連接;
2.對(duì)系統(tǒng)資源的要求(TCP較多,UDP少);
3.UDP程序結(jié)構(gòu)較簡(jiǎn)單;
4.流模式與數(shù)據(jù)報(bào)模式 ;
5.TCP保證數(shù)據(jù)正確性,UDP可能丟包,TCP保證數(shù)據(jù)順序,UDP不保證。
?

http://www.risenshineclean.com/news/8169.html

相關(guān)文章:

  • 文化網(wǎng)站建設(shè)論文寧德市人民政府
  • vuejs 可做網(wǎng)站嗎win7優(yōu)化大師官網(wǎng)
  • wordpress 作者列表優(yōu)化網(wǎng)站教程
  • 網(wǎng)站設(shè)計(jì)任務(wù)網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣方案模板
  • 惠州網(wǎng)站建設(shè)如何海外網(wǎng)站
  • 如何把做的網(wǎng)站變成鏈接網(wǎng)站標(biāo)題seo外包優(yōu)化
  • 重慶做網(wǎng)站_重慶網(wǎng)站建設(shè)_重慶網(wǎng)絡(luò)推廣_重慶網(wǎng)絡(luò)公司制作網(wǎng)頁(yè)app
  • 網(wǎng)站開(kāi)發(fā)需求分析主要內(nèi)容一站式媒體發(fā)布平臺(tái)
  • 免費(fèi)個(gè)人網(wǎng)站下載信息流廣告素材網(wǎng)站
  • 做影視網(wǎng)站關(guān)停不受限制的搜索瀏覽器
  • xyz域名做網(wǎng)站好么電商網(wǎng)站建設(shè)定制
  • seo網(wǎng)站排名后退權(quán)威發(fā)布
  • 建設(shè)部四庫(kù)一平臺(tái)查詢(xún)網(wǎng)站電商平臺(tái)有哪些?
  • 地方政府網(wǎng)站建設(shè)中存在的問(wèn)題怎么在百度上發(fā)布廣告
  • 114做網(wǎng)站詐騙搜狗網(wǎng)站提交入口
  • 專(zhuān)業(yè)網(wǎng)站開(kāi)發(fā)哪家公司好深圳百度推廣聯(lián)系方式
  • 微網(wǎng)站模板 php2024年最新時(shí)事新聞
  • 云南找工作靠譜的網(wǎng)站shopify seo
  • vip視頻解析網(wǎng)站建設(shè)北京seo公司網(wǎng)站
  • 想把自己做的網(wǎng)站放到網(wǎng)上軟件推廣方案經(jīng)典范文
  • 哪里有做企業(yè)網(wǎng)站的石家莊seo網(wǎng)站排名
  • 在百度怎么建立自己的網(wǎng)站嗎網(wǎng)站快速排名服務(wù)商
  • b2b網(wǎng)站平臺(tái)大全微信指數(shù)查詢(xún)
  • 如何查詢(xún)網(wǎng)站服務(wù)器地址慈溪seo
  • 安陽(yáng)做網(wǎng)站推廣最好的公司文案代寫(xiě)收費(fèi)標(biāo)準(zhǔn)
  • 如何把自己做的網(wǎng)站 放在網(wǎng)上seo顧問(wèn)阿亮
  • 自己做淘寶客網(wǎng)站嗎2023b站免費(fèi)推廣入口游戲
  • 品牌網(wǎng)站怎么做鄭州建網(wǎng)站的公司
  • 如今做哪些網(wǎng)站致富百度關(guān)鍵詞價(jià)格怎么查詢(xún)
  • 做移動(dòng)網(wǎng)站快速排名軟件seo變現(xiàn)培訓(xùn)