TCP/IP 網路協議
TCP/IP :
TCP/IP:在網路通訊中,TCP/IP是主流協議()
應用層:使用者自定義的協議(HTTP,EMAIL,),用於使用者之間資料的傳送
傳輸層:(傳輸控制:TCP,UDP)負責點對點之間連線建立,傳輸控制協議的指定()
網路層:用於查詢路由(查詢)
網路介面層:將二進位制轉換為資料幀。
注:幀就是網路發達單位
TCP/IP著名協議:
ARP:(實體地址:MAC地址)獲取同一物理網張嘴的MAC(32位)地址
IP:負責主機和網路之間定址(每一個主機都有一個對應的網路編號和主機號)
網路號:就是某一網路的編號(地名:湖北省武漢市江夏區XXXC27棟)
主機號:C27(代表某一網路地址的某臺主機)
IP: 網路+主機號 (IPV4:4段點分十進位制 192.168.8.73)
乙太網絡劃分:
A:【網路號】【[主][機][號]】
[0-------]【主機號】 ~ [01111111]【主機號】
0.0.0.0 ~ 127.255.255.255
注:127.0.0.1 是本機地址
B:【[網路][號]】【[主機][號]】
【[10-----][--------]】
最小網路號【10000000 000000】 128.0.主機號
最大網路號:[1011111111 11111111] 191.255.主機號
C:【[網][絡][號]】【[主機號]】
【110----- -------- --------】【主機號】
網路號:
最小:11000000 00000000 00000000[主機號] 192.0.0.
最大:11011111 11111111 11111111【主機號】223.255.255.
D:廣播地址
E:保留地址
劃分子網:財務:8人 教學:35人 學生:44人
193.8.7.1 ----190.8.7.254
子網數 --> 3個 主機號:44 北京傳送資訊給董老師:193.8.7.129
193.8.7. 【[--][-----]】
財務: 193.8.7.【[01]-------】
教學:193.8.7.【[11]------】
學生:193.8.7.[[10]------]
UDP:面向無連線,不安全,不可靠的傳輸協議。 (寫信,發簡訊)
傳送訊息時,不需要對方連線,不需要關心對方是否能收到
[源主機][目的主機][0][協議][UDP長度+]
TCP:面向有連線,安全,可靠的傳輸協議。 (快遞)
[源埠][目的埠][順序][確認號][TCP頭長URG、ACK,][視窗大小][校驗和][緊急指標][可選項][資料]
埠號:為了區分某主機下的某應用程式而設定的一個編號 HTTP:80
人類: 地址:湖北省武漢市江夏區XXXC27
人名:董老師 收
機器: 地址:192.168.8.73
埠:2425
Short port; [0-65535]
注:<128為常用埠 HTTP:80>
網路位元組序:為了防止不能電腦採用的高/低儲存問題,故裝置一種位元組序
1234567 ----- 1234567
TCP是面向連線的 (Transmission Control Protocol,傳輸控制協議)
UDP是面向無連線的 (User Datagram Protocol,使用者資料包協議)
當IP包通過路由將資料傳輸到目的地時,會根據TCP或UDP包頭中的源埠和目的埠資訊,請求和獲取不同的應用。也就是說,不管TCP還是UDP,都含有網路服務必須的源埠和目的埠資訊,以建立和實現網路傳輸服務。這時,你的疑問就來了:既然都用於傳輸,為何要搞兩個不同的協議呢?這就需要從網路中不同服務的需求來談起。
在網路中,有些服務,如HTTP、FTP等,對資料的可靠性要求較高,在使用這些服務時,必須保證資料包能夠完整無誤的送達;而另外一些服務,如DNS、即時聊天工具等,並不需要這麼高的可靠性,高效率和實時性才是它們所關心的。根據這兩種服務不同的需求,也就誕生了面向連線的TCP協議,以及面向無連線的UDP協議。
這裡的連線(Connection)和無連線(Connectionless)是網路傳輸中常用的術語,它們的關係可以用一個形象地比喻來說明,就是打電話(TCP)和寫信(UDP)。
打電話時,一個人首先必須撥號(發出連線請求),等待對方響應,接聽電話(建立了連線)後,才能夠相互傳遞資訊。通話完成後,還需要結束通話電話(斷開連線),才算完成了整個通話過程。寫信則不同,你只需填寫好收信人的地址資訊,然後將信投入郵局,就算完成了任務。此時,郵局會根據收信人的地址資訊,將信件送達指定目的地。
伺服器:
1、建立套接字(開啟網絡卡)1、建立套接字(開啟網絡卡)
int socket(網路族,控制協議,0)
TCP/IP:AF_INET
控制協議:TCP( SOCK_STREAM) UDP( SOCK_DGRAM)
預設值:0
返回值:檔案的描述符
2、繫結地址
bind(int,struct sockaddr_int*)
3、收/傳送資訊
recvfrom
sendto()
4、結束
close();
客戶端:
1、建立套接字(開啟網絡卡)1、建立套接字(開啟網絡卡)
2、收/傳送資訊
3、結束