導航:首頁 > 配伺服器 > 伺服器如何發送數據包

伺服器如何發送數據包

發布時間:2022-08-20 20:02:58

Ⅰ html 傳輸中,伺服器 是如何 將數據發送到我個人電腦上

你所指的這種技術通常是指的nat(地址翻譯),如你所舉的例,網路的伺服器接收到的是你的路由器的公網地址,
原理是這樣的,在內部主機連接到外部網路時,當第一個數據包到達NAT路由器時,router檢查它的NAT表,因為是NAT是靜態配置的,故可以查詢出來(simply entry),然後router將數據包的內部局部IP(源地址,即你的內網地址)更換成外網地址,(即內部全局地址),再轉發出去。外部主機接受到數據包用接受到的外網地址,(即內部全局地址)來響應,NAT接受到外部回來的數據包,再根據NAT表把地址翻譯成內部局部IP(即你的內網地址),轉發過去.

Ⅱ 怎麼給別人發送數據包

ping IP或是主機名
它發送的實際上是一個ICMP數據包。
不知道你有沒有基礎,看看下面的吧
是DOS命令,一般用於檢測網路通與不通
PING (Packet Internet Grope),網際網路包探索器,用於測試網路連接量的程序。Ping發送一個ICMP回聲清求消息給目的地並報告是否收到所希望的ICMP回聲應答。
它是用來檢查網路是否通暢或者網路連接速度的命令。作為一個生活在網路上的管理員或者黑客來說,ping命令是第一個必須掌握的DOS命令,它所利用的原理是這樣的:網路上的機器都有唯一確定的IP地址,我們給目標IP地址發送一個數據包,對方就要返回一個同樣大小的數據包,根據返回的數據包我們可以確定目標主機的存在,可以初步判斷目標主機的操作系統等。
Ping 是Windows系列自帶的一個可執行命令。利用它可以檢查網路是否能夠連通,用好它可以很好地幫助我們分析判定網路故障。應用格式:Ping IP地址。該命令還可以加許多參數使用,具體是鍵入Ping按回車即可看到詳細說明。
1.Ping本機IP
例如本機IP地址為:172.168.200.2。則執行命令Ping 172.168.200.2。如果網卡安裝配置沒有問題,則應有類似下列顯示:

Replay from 172.168.200.2 bytes=32 time<10ms

Ping statistics for 172.168.200.2

Packets Sent=4 Received=4 Lost=0 0% loss

Approximate round trip times in milli-seconds

Minimum=0ms Maxiumu=1ms Average=0ms

如果在MS-DOS方式下執行此命令顯示內容為:Request timed out,則表明網卡安裝或配置有問題。將網線斷開再次執行此命令,如果顯示正常,則說明本機使用的IP地址可能與另一台正在使用的機器IP地址重復了。如果仍然不正常,則表明本機網卡安裝或配置有問題,需繼續檢查相關網路配置。

2.Ping網關IP

假定網關IP為:172.168.6.1,則執行命令Ping 172.168.6.1。在MS-DOS方式下執行此命令,如果顯示類似以下信息:

Reply from 172.168.6.1 bytes=32 time=9ms TTL=255

Ping statistics for 172.168.6.1

Packets Sent=4 Received=4 Lost=0

Approximate round trip times in milli-seconds

Minimum=1ms Maximum=9ms Average=5ms

則表明區域網中的網關路由器正在正常運行。反之,則說明網關有問題。

3.Ping遠程IP

這一命令可以檢測本機能否正常訪問Internet。比如本地電信運營商的IP地址為:202.102.48.141。在MS-DOS方式下執行命令:Ping 202.102.48.141,如果屏幕顯示:

Reply from 202.102.48.141 bytes=32 time=33ms TTL=252

Reply from 202.102.48.141 bytes=32 time=21ms TTL=252

Reply from 202.102.48.141 bytes=32 time=5ms TTL=252

Reply from 202.102.48.141 bytes=32 time=6ms TTL=252

Ping statistics for 202.102.48.141

Packets Sent=4 Received=4 Lost=0 0% loss

Approximate round trip times in milli-seconds

Minimum=5ms Maximum=33ms Average=16ms

則表明運行正常,能夠正常接入互聯網。反之,則表明主機文件(windows/host)存在問題。

--PING命令參數詳解

-a 將目標的機器標識轉換為ip地址

-t 若使用者不人為中斷會不斷的ping下去

-c count 要求ping命令連續發送數據包,直到發出並接收到count個請求

-d 為使用的套接字打開調試狀態

-f 是一種快速方式ping。使得ping輸出數據包的速度和數據包從遠程主機返回一樣快,或者更快,達到每秒100次。在這種方式下,每個請求用一個句點表示。對於每一個響應列印一個空格鍵。

-i seconds 在兩次數據包發送之間間隔一定的秒數。不能同-f一起使用。

-n 只使用數字方式。在一般情況下ping會試圖把IP地址轉換成主機名。這個選項要求ping列印IP地址而不去查找用符號表示的名字。如果由於某種原因無法使用本地DNS伺服器這個選項就很重要了。

-p pattern 擁護可以通過這個選項標識16 pad位元組,把這些位元組加入數據包中。當在網路中診斷與數據有關的錯誤時這個選項就非常有用。

-q 使ping只在開始和結束時列印一些概要信息。

-R 把ICMP RECORD-ROUTE選項加入到ECHO_REQUEST數據包中,要求在數據包中記錄路由,這樣當數據返回時ping就可以把路由信息列印出來。每個數據包只能記錄9個路由節點。許多主機忽略或者放棄這個選項。

-r 使ping命令旁路掉用於發送數據包的正常路由表。

-s packetsize 使用戶能夠標識出要發送數據的位元組數。預設是56個字元,再加上8個位元組的ICMP數據頭,共64個ICMP數據位元組。

-v 使ping處於verbose方式。它要ping命令除了列印ECHO-RESPONSE數據包之外,還列印其它所有返回的ICMP數據包。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=================================================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
《ping的參數!》

Ping 命令可以用來驗證與遠程計算機的連接。(該命令只有在安裝了TCP/IP協議後才能使用)

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r
count] [-s count] [[-j computer-list] | [-k computer-list]] [-w
timeout] destination-list

參數說明:
-t :一直Ping指定的計算機,直到從鍵盤按下Control-C中斷。
-a :將地址解析為計算機NetBios名。
-n :發送count指定的ECHO數據包數。,通過這個命令可以自己定義發送的個數,對衡量網路速度很有幫助。能
夠測試發送數據包的返回平均時間,及時間的快慢程度。默認值為 4。
-l :發送指定數據量的ECHO數據包。默認為 32 位元組;最大值是65500byt。
-f :在數據包中發送「不要分段」標志,數據包就不會被路由上的網關分段。通常你所發送的數據包都會通過路由分
段再發送給對方,加上此參數以後路由就不會再分段處理。
-i :將「生存時間」欄位設置為TTL指定的值。指定TTL值在對方的系統里停留的時間。同時檢查網路運轉情況的。
-v :tos 將「服務類型」欄位設置為 tos 指定的值。
-r :在「記錄路由」欄位中記錄傳出和返回數據包的路由。通常情況下,發送的數據包是通過一系列路由才到達目
標地址的,通過此參數可以設定,想探測經過路由的個數。限定能跟蹤到9個路由。
-s :指定 count 指定的躍點數的時間戳。與參數-r差不多,但此參數不記錄數據包返回所經過的路由,最多隻記
錄4個。
-j :利用 computer-list 指定的計算機列表路由數據包。連續計算機可以被中間網關分隔(路由稀疏源) IP 允許的
最大數量為 9。
-k :computer-list 利用 computer-list 指定的計算機列表路由數據包。連續計算機不能被中間網關分隔(路由嚴格

源)IP 允許的最大數量為 9。
-w:timeout 指定超時間隔,單位為毫秒。
destination-list: 指定要 ping 的遠程計算機。

Ⅲ 電腦怎麼向網路游戲運行商的伺服器發送數據包的

利用TCP/IP或者UDP之類的通訊協議,通過特定埠發送和接收!

Ⅳ (TCP)如何向指定IP和埠號發送數據包(詳細一點)

TCP和IP是兩個協議
TCP和UDP協議原理類似,都是往目的地發送數據包
但有一個區別是,UDP只管發,不管你收沒收到,TCP會確認你收到了一個包後再發下一個

Ⅳ 如何用C語言實現向某個IP發送數據包(例如4個浮點數)

使用socket編程即可。
1、網路的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似於打開文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨後的連接建立、數據傳輸等操作都是通過該Socket實現的。

2、下面用Socket實現一個windows下的c語言socket通信例子,這里客戶端傳遞一個字元串,伺服器端進行接收。

【伺服器端】
#include "stdafx.h"
#include <stdio.h>
#include <winsock2.h>
#include <winsock2.h>
#define SERVER_PORT 5208 //偵聽埠
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int ret, nLeft, length;
SOCKET sListen, sServer; //偵聽套接字,連接套接字
struct sockaddr_in saServer, saClient; //地址信息
char *ptr;//用於遍歷信息的指針
//WinSock初始化
wVersionRequested=MAKEWORD(2, 2); //希望使用的WinSock DLL 的版本
ret=WSAStartup(wVersionRequested, &wsaData);
if(ret!=0)
{
printf("WSAStartup() failed!\n");
return;
}
//創建Socket,使用TCP協議
sListen=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sListen == INVALID_SOCKET)
{
WSACleanup();
printf("socket() faild!\n");
return;
}
//構建本地地址信息
saServer.sin_family = AF_INET; //地址家族
saServer.sin_port = htons(SERVER_PORT); //注意轉化為網路位元組序
saServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //使用INADDR_ANY 指示任意地址

//綁定
ret = bind(sListen, (struct sockaddr *)&saServer, sizeof(saServer));
if (ret == SOCKET_ERROR)
{
printf("bind() faild! code:%d\n", WSAGetLastError());
closesocket(sListen); //關閉套接字
WSACleanup();
return;
}

//偵聽連接請求
ret = listen(sListen, 5);
if (ret == SOCKET_ERROR)
{
printf("listen() faild! code:%d\n", WSAGetLastError());
closesocket(sListen); //關閉套接字
return;
}

printf("Waiting for client connecting!\n");
printf("Tips: Ctrl+c to quit!\n");
//阻塞等待接受客戶端連接
while(1)//循環監聽客戶端,永遠不停止,所以,在本項目中,我們沒有心跳包。
{
length = sizeof(saClient);
sServer = accept(sListen, (struct sockaddr *)&saClient, &length);
if (sServer == INVALID_SOCKET)
{
printf("accept() faild! code:%d\n", WSAGetLastError());
closesocket(sListen); //關閉套接字
WSACleanup();
return;
}
char receiveMessage[5000];
nLeft = sizeof(receiveMessage);
ptr = (char *)&receiveMessage;
while(nLeft>0)
{
//接收數據
ret = recv(sServer, ptr, 5000, 0);
if (ret == SOCKET_ERROR)
{
printf("recv() failed!\n");
return;
}
if (ret == 0) //客戶端已經關閉連接
{
printf("Client has closed the connection\n");
break;
}
nLeft -= ret;
ptr += ret;
}
printf("receive message:%s\n", receiveMessage);//列印我們接收到的消息。

}
// closesocket(sListen);
// closesocket(sServer);
// WSACleanup();
}
【客戶端】
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#define SERVER_PORT 5208 //偵聽埠
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int ret;
SOCKET sClient; //連接套接字
struct sockaddr_in saServer; //地址信息
char *ptr;
BOOL fSuccess = TRUE;
//WinSock初始化
wVersionRequested = MAKEWORD(2, 2); //希望使用的WinSock DLL的版本
ret = WSAStartup(wVersionRequested, &wsaData);
if(ret!=0)
{
printf("WSAStartup() failed!\n");
return;
}
//確認WinSock DLL支持版本2.2
if(LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion)!=2)
{
WSACleanup();
printf("Invalid WinSock version!\n");
return;
}
//創建Socket,使用TCP協議
sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sClient == INVALID_SOCKET)
{
WSACleanup();
printf("socket() failed!\n");
return;
}
//構建伺服器地址信息
saServer.sin_family = AF_INET; //地址家族
saServer.sin_port = htons(SERVER_PORT); //注意轉化為網路節序
saServer.sin_addr.S_un.S_addr = inet_addr("192.168.1.127");
//連接伺服器
ret = connect(sClient, (struct sockaddr *)&saServer, sizeof(saServer));
if (ret == SOCKET_ERROR)
{
printf("connect() failed!\n");
closesocket(sClient); //關閉套接字
WSACleanup();
return;
}

char sendMessage[]="hello this is client message!";
ret = send (sClient, (char *)&sendMessage, sizeof(sendMessage), 0);
if (ret == SOCKET_ERROR)
{
printf("send() failed!\n");
}
else
printf("client info has been sent!");
closesocket(sClient); //關閉套接字
WSACleanup();
}

Ⅵ 我要給某個伺服器發送數據包,該怎樣操作格式是怎樣的

"ping xxx.xxx.xxx.xxx"
也可以ping域名,比如"ping www..com"
下面幾個擴展參數,可以用。
ping IP -t--連續對IP地址執行Ping命令,直到被用戶以Ctrl+C中斷。
ping IP -l 2000--指定Ping命令中的數據長度為2000位元組,而不是預設的32位元組。
ping IP -n--執行特定次數的Ping命令

Ⅶ 如何使用coap協議向伺服器發送數據包

CoAP的URL

在HTTP的世界中,RESTFul協議由於其簡單性和適用性,在WEB應用中越來越受歡迎,這樣的道理同樣適用於CoAP。一個CoAP資源可以被一個URI所描述,例如一個設備可以測量溫度,那麼這個溫度感測器的URI被描述為:CoAP://machine.address:5683/sensors/temperature。請注意,CoAP的默認UDP埠號為5683。

CoAP觀察模式

在物聯網的世界中,你需要去監控某個感測器例如溫度或濕度等。在這種情況下,CoAP客戶端並不需要不停的查詢CoAP伺服器端的數據變化情況。CoAP客戶端可以發送一個觀察請求到伺服器端。從該時間點開始計算,伺服器便會記住客戶端的連接信息,一旦溫度發生變化,伺服器將會把新結果發送給客戶端。如果客戶端不在希望獲得溫度檢測結果,那麼客戶端將會發送一個RST復位請求,此時伺服器便會清除與客戶端的連接信息。

CoAP塊傳輸

CoAP協議的特點是傳輸的內容小巧精簡,但是在某些情況下不得不傳輸較大的數據。在這種情況下可以使用CoAP協議中的某個選項設定分塊傳輸的大小,那麼無論是伺服器或客戶端可完成分片和組裝這兩個動作。

Ⅷ 如何用伺服器發送數據包

你好!
你說的這個是DDOS攻擊,就是用多個Pc向目標Pc發送大量無效數據包,目標Pc接收到這些數據包會回應,而這些數據包都是一些沒有具體鏈接的數據包,而目標Pc卻一直等待著對方的回應,從而佔用目標Pc大量的內存和接入網帶寬,造成嚴重的網路擁堵甚至伺服器宕機(掉線,死機)如何實現你只有找別人了,這個問題很嚴重!

Ⅸ 數據包是如何在網路中傳輸的

我們電腦上的數據,是如何「走」到遠端的另一台電腦的呢?這是個最基礎的問題,可能很多人回答不上來,盡管我們每天都在使用網路。這里我們以一個最簡單的「ping」命令,來解釋一個數據包「旅程」。

假設:我的電腦A,向遠在外地的朋友電腦B傳輸數據,最簡單的就是「ping」一下,看看這個傢伙的那一端網路通不通。A與B之間只有一台路由器。(路由器可能放在學校,社區或者電信機房,無所謂,基本原理是一樣的)

具體過程如下------
1.「ping」命令所產生的數據包,我們歸類為ICMP協議。說白了就是向目的地發送一個數據包,然後等待回應,如果回應正常則目的地的網路就是通的。當我們輸入了「ping」命令之後,我們的機器(電腦A)就生成了一個包含ICMP協議域的數據包,姑且稱之為「小德」吧~~~~

2.「小德」已經將ICMP協議打包到數據段里了,可是還不能發送,因為一個數據要想向外面傳送,還得經過「有關部門」的批准------IP協議。IP要將你的「寫信人地址」和「收信人地址」寫到數據段上面,即:將數據的源IP地址和目的IP地址分別打包在「小德」的頭部和尾部,這樣一來,大家才知道你的數據是要送到哪裡。

3.准備工作還沒有完。接下來還有部門要審核------ARP。ARP屬於數據鏈路層協議,主要負責把IP地址對應到硬體地址。直接說吧,都怪交換機太「傻」,不能根據IP地址直接找到相應的計算機,只能根據硬體地址來找。於是,交換機就經常保留一張IP地址與硬體地址的對應表以便其查找目的地。而ARP就是用來生成這張表的。比如:當「小德」被送到ARP手裡之後,ARP就要在表裡面查找,看看「小德」的IP地址與交換機的哪個埠對應,然後轉發過去。如果沒找到,則發一個廣播給所有其他的交換機埠,問這是誰的IP地址,如果有人回答,就轉發給它。

4.經過一番折騰,「小德」終於要走出這個倒霉的區域網了。可在此之前,它們還沒忘給「小德」屁股後面蓋個「戳」,說是什麼CRC校驗值,怕「小德」在旅行途中缺胳膊少腿,還得麻煩它們重新發送。。。。。我靠~~~~註:很多人弄不清FCS和CRC。所謂的CRC是一種校驗方法,用來確保數據在傳輸過程中不會丟包,損壞等等,FCS是數據包(准確的說是frame)里的一個區域,用來存放CRC的計算結果的。到了目的地之後,目的計算機要檢查FCS里的CRC值,如果與原來的相同,則說明數據在途中沒有損壞。

5.在走出去之前,那些傢伙最後折磨了一次「小德」------把小德身上眾多的0和1,弄成了什麼「高電壓」「低電壓」,在雙絞線上傳送了出去。暈~~出趟門就這么麻煩嗎?

6.坐著雙絞線旅遊,爽!可當看到很多人坐著同軸電纜,還有坐光纖的時候,小德又感覺不是那麼爽了。就在這時,來到了旅途的中轉站------路由器。這地方可是高級場所,人家直接查看IP地址!剩下的一概不管,交給下面的人去做。夠牛吧?路由器的內部也有一張表,叫做路由表,裡面標識著哪一個網路的IP對應著路由器的哪一個埠。這個表也不是天生就有的,而是靠路由器之間互相「學習」之後生成的,當然也可以由管理員手工設定。這個「學習」的過程是依靠路由協議來完成的,比如RIP,EIGRP,OSPF等等。

7.當路由器查看了「小德」的IP地址以後,根據路由表知道了小德要去的網路,接著就把小德轉到了相應的埠了。至此,路由器的主要工作完成,下面又是打包,封裝成frame,轉換成電壓信號等一系列「折騰」的活,就由數據鏈路層和物理層的模塊去干吧。

8.小德從路由器的出口出來,便來到了目的地----電腦B----所屬的網路的默認網關。默認網關可以是路由器的一個埠,也可以是區域網里的各種伺服器。不管怎樣,下面的過程還是一樣的:到交換機里的ARP表查詢「小德」的IP地址,看看屬於哪個區域網段或埠,然後就轉發到B了。

9.進了B的網卡之後,還要層層「剝皮」,基本上和從A出來的程序是一樣的------電腦B先校驗一下CRC值,看看數據是否完整;然後檢查一下frame的封裝,看到是IP協議之後,就把「小德」交給IP「部門」了;IP協議一看目的地址,正確,再看看應用協議,是ICMP。於是知道了該怎麼做了------產生一個回應數據包,(可以命名為「回應小德」),並准備以同樣的順序向遠端的A發送。。至於剛剛收到的那個數據包就丟棄了。

10.「回應小德」這個數據包又開始了上述同樣的循環,只不過這次發送者是B而接收者是A了。

以上是一個最簡單的路由過程,任何復雜的網路都是在次基礎之上實現的。

閱讀全文

與伺服器如何發送數據包相關的資料

熱點內容
伺服器共享文件夾怎麼查詢 瀏覽:114
為什麼雙路伺服器突然關機 瀏覽:690
51單片機定時器0任務調度 瀏覽:189
程序員編程語言經典合集epub 瀏覽:567
cadline未知命令 瀏覽:105
PLC的加密狗的作用 瀏覽:859
遺傳演算法優化神經網路權值閾值 瀏覽:288
伺服器為什麼要裝php 瀏覽:871
tomcat搭建android伺服器 瀏覽:340
怎麼下載app躲貓貓 瀏覽:888
極品飛車解壓資源包錯誤 瀏覽:703
pm2016免加密狗破解 瀏覽:439
拳擊pdf 瀏覽:346
柱子箍筋全長加密到板底 瀏覽:385
pdf頁面不一樣 瀏覽:302
javaphp混合 瀏覽:676
雲伺服器商業 瀏覽:193
永磁變頻螺桿式空氣壓縮機優缺點 瀏覽:368
程序員帶老婆回家 瀏覽:463
大學生編程學習資源 瀏覽:125