信息系統(tǒng)軟件有哪些優(yōu)化的概念
目錄
1.網(wǎng)絡(luò)的歷史和協(xié)議的分成
2.網(wǎng)絡(luò)互聯(lián)促成了TCP/IP協(xié)議的產(chǎn)生
3.網(wǎng)絡(luò)的體系結(jié)構(gòu)
4.TCP/IP協(xié)議族體系
5.網(wǎng)絡(luò)各層的協(xié)議解釋
6.網(wǎng)絡(luò)的封包和拆包
7.網(wǎng)絡(luò)預(yù)備知識(shí)? ? ?
1.網(wǎng)絡(luò)的歷史和協(xié)議的分成
Internet-"冷戰(zhàn)"的產(chǎn)物
1957年十月和十一月,前蘇聯(lián)先后歐兩顆”Spuinik”衛(wèi)星上天
1958年美國總統(tǒng)艾森豪威爾向美國國會(huì)提出建立DARPA,即國防部高級(jí)研究計(jì)劃署,簡稱ARPA.1968年6月DARPA提出“資源共享計(jì)算機(jī)網(wǎng)絡(luò)”,目的在于讓DARPA的所有電腦互連起來,這個(gè)網(wǎng)絡(luò)就叫做ARPAnet,即“阿帕網(wǎng)”,是Internet的最早雛形。
2.網(wǎng)絡(luò)互聯(lián)促成了TCP/IP協(xié)議的產(chǎn)生
早期的ARPAnet使用網(wǎng)絡(luò)控制協(xié)議,不能互聯(lián)不同類型的計(jì)算機(jī)和不同類型的操作系統(tǒng),沒有糾錯(cuò)功能
1973年有Rober Kahn 和 Vinton Cerf 兩人合作為ARPAnet開發(fā)了新的互聯(lián)網(wǎng)協(xié)議
1974年12月兩人正式發(fā)表第一份TCP協(xié)議詳細(xì)說明,但此協(xié)議在有數(shù)據(jù)包丟失時(shí)不能有效的糾正
TCP協(xié)議分成了兩個(gè)不同的協(xié)議:
- 用來檢測網(wǎng)絡(luò)傳輸中差錯(cuò)的傳輸控制協(xié)議TCP
- 專門負(fù)責(zé)對不同網(wǎng)絡(luò)進(jìn)行互聯(lián)的互聯(lián)網(wǎng)協(xié)議IP
- 從此TCP/IP協(xié)議誕生
1983年ARPAnet上停止使用NCP,互聯(lián)網(wǎng)上的主機(jī)全部使用TCP/IP協(xié)議,TCP/IP協(xié)議成為Internet中的“世界語”。
3.網(wǎng)絡(luò)的體系結(jié)構(gòu)
- 網(wǎng)絡(luò)采用分而治之的方法設(shè)計(jì),將網(wǎng)絡(luò)的功能劃分為不同的模塊,以分層的形式有機(jī)組合在一起
- 每層實(shí)現(xiàn)不同的功能,其內(nèi)部實(shí)現(xiàn)方法對外部其他層次來說是透明的。每層向上層提供服務(wù),同時(shí)使用下層提供的服務(wù)。
- 網(wǎng)終體系結(jié)構(gòu)即指網(wǎng)絡(luò)的層次結(jié)構(gòu)和每層所使用的協(xié)議的集合
- 兩類非常重要的體系結(jié)構(gòu):OSI和 TCP/IP。
- OSI模型相關(guān)的協(xié)議已經(jīng)很少使用,但模型本身非常通用? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? OSI模型是一個(gè)理想化的模型,尚未有完整的實(shí)現(xiàn)
- OSI模型共有七層
- 二層交換機(jī),三層交換機(jī)
4.TCP/IP協(xié)議族體系
- TCP/IP協(xié)議族體系是Internet事實(shí)上的工業(yè)標(biāo)準(zhǔn)
- 一共有四層
應(yīng)用層 | Relnet,FTP,HTTP,DNS,SMTP等 |
傳輸層 | TCP和UDP |
網(wǎng)絡(luò)層 | IP,ICMP和IGMP,端到端傳輸 |
網(wǎng)絡(luò)接口和物理層 | 以太網(wǎng),令牌環(huán)網(wǎng),FDDI,wifi,gps/2G/3G/4G,驅(qū)動(dòng)(屏蔽硬件差異) |
5.網(wǎng)絡(luò)各層的協(xié)議解釋
1.網(wǎng)絡(luò)接口和物理層
?mac地址: 48位全球唯一,網(wǎng)絡(luò)設(shè)備的身份標(biāo)識(shí)
- ?ARP:地址解析協(xié)議,IP地址找到mac地址
- ?RARP:mac地址--找到P地址
- ?PPP協(xié)議: 撥號(hào)協(xié)議 (GPRS/3G/4G)
2.網(wǎng)絡(luò)層
- ?IP地址
- ?IP協(xié)議: Internet protocol(分為IPV4和IPv6)
- ?ICMP:Internet控制管理協(xié)議,Ping 命令屬于ICMP
- ?IGMP:Internet分組管理協(xié)議,廣播和組播
3.傳輸層
TCP: (Transfer Control protocol,傳輸控制協(xié)議) 提供面向連接的,一對一的可靠傳輸?shù)膮f(xié)議
- 數(shù)據(jù)無誤,數(shù)據(jù)不丟失,數(shù)據(jù)無失序
- 適用場景
- 適合對傳輸質(zhì)量要求較高,以及傳輸大量數(shù)據(jù)的通信
- 在需要可靠數(shù)據(jù)傳輸?shù)膱龊?#xff0c;通常適用TCP協(xié)議
- ?MSN/QQ等即時(shí)通訊軟件的用戶登錄賬號(hào)管理相關(guān)的功能通常采用TCP協(xié)議
UDP: (user Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議) : 提供不可靠,無連接的傳輸協(xié)議
- 適用場景
- 發(fā)送小尺寸數(shù)據(jù) (如對DNS服務(wù)器進(jìn)行IP地址查詢時(shí))
- 在接收數(shù)據(jù),給出應(yīng)答較困難的網(wǎng)終中適用UDP (如無線網(wǎng)絡(luò))
- 適合于廣播/組播式通信中MSN/QQ/Skype等即時(shí)通訊軟件的點(diǎn)對點(diǎn)文本通訊以及音視頻通常采用UDP協(xié)議流媒體VOD,VoIP,IPTV等網(wǎng)絡(luò)多媒體服務(wù)中通常采用UDP方式進(jìn)行實(shí)時(shí)數(shù)據(jù)傳輸? ? ? ? ?
SCTP: (Stream Control Transmission Protocol:流控制傳輸協(xié)議),TCP的增強(qiáng)版,他能實(shí)現(xiàn)多主機(jī)多鏈路的通信。? ? ???
?4.應(yīng)用層 ? ? ? ? ? ?
網(wǎng)頁訪問協(xié)議: HTTP/HTTPS0
郵件發(fā)送接收協(xié)議: POP3(收)/SMTP(發(fā)),IMAP(可接受郵件的一部分)
FTP: 文件傳輸協(xié)議
Telnet/ssh:遠(yuǎn)程登錄
嵌入式相關(guān)
- NTP:網(wǎng)絡(luò)時(shí)鐘協(xié)議
- SNMP:簡單網(wǎng)絡(luò)管理協(xié)議 (實(shí)現(xiàn)對網(wǎng)絡(luò)涉及集中式管理)
- RTP/RSTP:用于傳輸音視頻的協(xié)議 (安防監(jiān)控)? ? ? ? ?
6.網(wǎng)絡(luò)的封包和拆包
TCP/IP協(xié)議下的數(shù)據(jù)包
7.網(wǎng)絡(luò)預(yù)備知識(shí)? ? ?
1.socket
- 是一個(gè)編程接口,是一個(gè)特殊的文件描述符(對他執(zhí)行IO的操作函數(shù),比如read,write,close等),并不 僅限于TCP/IP協(xié)議,面向連接TCP,無連接UDP。? ?
- socket代表網(wǎng)絡(luò)編程的一種資源? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
分類
- 1.流式套接字(SOCK_STREAM)。唯一對應(yīng)TCP 提供了一個(gè)面向連接,可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯(cuò),無重復(fù)的發(fā)送順序接收。內(nèi)射擊流量控 制,避免數(shù)據(jù)流淹沒慢的接收方。數(shù)據(jù)被看作式字節(jié)流,無長度限制。
- 2.數(shù)據(jù)包套接字(SOCK_DGRAM)。唯一對應(yīng)UDP 提供無連接服務(wù)器,數(shù)據(jù)包以獨(dú)立數(shù)據(jù)包的形式被發(fā)送,不提供無差錯(cuò)保證,數(shù)據(jù)可能丟失或重 復(fù),順序發(fā)送,可能亂序接收。
- 3.原始套接字(SOCK_RAW)。對應(yīng)多個(gè)協(xié)議,發(fā)送穿透了傳輸層 可以對較低層次協(xié)議如IP,ICMP直接訪問。
2.IP地址
- IP地址是Internet中主機(jī)的標(biāo)識(shí),Internet中的主機(jī)要與別的機(jī)器通信必須具有一個(gè)IP地址,IP地址為32 為(Ipv4)或者128位(Ipv6),每個(gè)數(shù)據(jù)包都必須攜帶目的IP地址和源IP地址,路由器依靠此信息為數(shù) 據(jù)包選擇路由
- 表示的形式:常用點(diǎn)分形式,如202.38.64.10,最后都會(huì)轉(zhuǎn)化成一個(gè)32位的無符號(hào)整數(shù)
- mobileIPV6:local IP(本地注冊的IP),roma IP(漫游IP)
特殊IP地址
- 局域網(wǎng)IP: 192.XXX.XXX.XXX 10.XXX.XXX.XXX
- 廣播IP:xxx.xxx.xxx.255 255.255.255.255(全網(wǎng)廣播) 網(wǎng)絡(luò)風(fēng)暴
- 組播IP:224.xxx.xxx.xxx ~239.xxx.xxx.xxx
3.端口號(hào)
- 16位數(shù)字,1-65535
- 為了區(qū)分一臺(tái)主機(jī)接收到的數(shù)據(jù)包應(yīng)該轉(zhuǎn)交給哪個(gè)任務(wù)進(jìn)程處理,使用端口號(hào)來區(qū)別
- 預(yù)留端口,1-1023 (FTP:24,SSH:22,HTTP: 80,HTTPS :469)
- 保留端口: 1024-5000 (不建議使用)
- 可以使用的端口: 5000~65535
- TCP端口號(hào)于UDP端口號(hào)獨(dú)立
- 網(wǎng)絡(luò)里的通信是由 IP地址+端口號(hào) 來決定的
4.字節(jié)序
- 字節(jié)序是指不同的CPU訪問內(nèi)存中的多字節(jié)數(shù)據(jù)時(shí)候,存在大小端的問題
- 如果CPU訪問的是字符串,則不存在大小端問題
- 一般來說X86/ARM : 小端模式
- ?power/miop:arm作為路由時(shí),大端模式
- 網(wǎng)絡(luò)傳輸?shù)臅r(shí)候采用大端模式
字節(jié)轉(zhuǎn)換函數(shù)
- 把給定系統(tǒng)所采用的字節(jié)序稱為主機(jī)字節(jié)序,為了避免不同類別主機(jī)之間在數(shù)據(jù)交換時(shí)由于對于字 節(jié)序的不同而導(dǎo)致的差錯(cuò),引入了網(wǎng)絡(luò)字節(jié)序。
- 主機(jī)字節(jié)序到網(wǎng)絡(luò)字節(jié)序
- u_long htonl(u_long hostlong);
- u_short htons(u_short short);
- 網(wǎng)絡(luò)字節(jié)序到主機(jī)字節(jié)序
- u_long ntohl(u_long hostlong);
- u_short ntohs(u_short short);
IP地址的轉(zhuǎn)換
- inet_aton()
????????將strptr所指的字符串轉(zhuǎn)換成32位的網(wǎng)絡(luò)字節(jié)序二進(jìn)制值
- inet_addr()
????????功能同上,返回轉(zhuǎn)換后的地址 僅適用于IPV4,出錯(cuò)時(shí)返回-1。
????????局限性:不能用于255.255.255.255的轉(zhuǎn)換
- inet_ntoa()
????????將32位網(wǎng)絡(luò)字節(jié)序二進(jìn)制地址轉(zhuǎn)換成點(diǎn)分十進(jìn)制的字符串
- inet_pton()
????????int inet_pton(int af, const char* src ,void* dst)
????????將IPV4/IPV6 的地址轉(zhuǎn)換成binary格式
????????使用于IPV4/IPV6 能正確處理255.255.255.255的轉(zhuǎn)換問題
????????參數(shù):
????????1.地址協(xié)議族(AF_INET或AF_INET6)
????????2.src:是一個(gè)指針(填寫分點(diǎn)形式的IP地址(主要指IPV4))
????????dst:轉(zhuǎn)換的結(jié)果給到dst
- inet_ntop(int af,const void *src,char *dst,socklen_t size)
????????把ipv4和ipv6的網(wǎng)絡(luò)字節(jié)序變成本地的字符串形式的IP地址
????????參數(shù)
????????1.af:地址協(xié)議族(AF_INET或AF_INET6)
????????2.src:是一個(gè)指針(32)
????????3.dst:輸出結(jié)果為32位點(diǎn)分形式的IP地址
????????4.size:長度