日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java Network Programming 笔记(1)

發(fā)布時間:2023/12/8 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java Network Programming 笔记(1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java Network Programming 筆記

n5


一 網(wǎng)絡(luò)基本概念
Chapter2 Basic Network Concepts

2.1 Networks
keywords: network, node, host, address, name, packet-switched, protocol

網(wǎng)絡(luò)是可以或多或少實時地相互發(fā)送和接收數(shù)據(jù)的計算機和其他設(shè)備的集合。

網(wǎng)絡(luò)上的每臺機器被稱作結(jié)點(node),大多數(shù)結(jié)點是計算機,但是打印機,路由器,橋,網(wǎng)關(guān),啞終端和可口可樂機都可以是結(jié)點,但你通常只和其他計算機會話。
功能齊全的計算機結(jié)點被稱作主機(host)。

每個網(wǎng)絡(luò)結(jié)點有一個地址(address):唯一標(biāo)識它的一系列字節(jié)。在不同的網(wǎng)絡(luò)中地址分配方法同。以太網(wǎng)地址是附加在物理的以太網(wǎng)硬件上的。設(shè)備廠商要保證這些硬件的地址不重復(fù)。一臺計算機的Internet地址通常由專門負(fù)責(zé)分配地址的組織分配。而這些組織可以分配的地址又是由該組織的ISP(Internet Service Provider)提供的。ISP從三個Internet地區(qū)性注冊機構(gòu)之一獲得IP地址(Internet Protocol地址)。比如美洲和非洲的注冊機構(gòu)為ARIN(the American Registry for Internet Numbers)。地區(qū)性注冊機構(gòu)的地址又是由IANA(Internet Assigned Numbers Authority)分配的。

某些種類的網(wǎng)絡(luò)中,結(jié)點可使用人類易辨認(rèn)的名字。名字和地址的對應(yīng)不是不變的。名字變了,地址可不變;地址變了,名字可不變。一個地址通常可有多個名字,一個名字也可以對應(yīng)多個地址(雖然這樣的情況很少)

所有現(xiàn)代計算機網(wǎng)絡(luò)是包交換(packet-switched)網(wǎng)絡(luò)。在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)被分成包,每個包都被獨立處理。每個包都含有"誰發(fā)送了我"和"我要去哪兒"的信息。包交換的最大優(yōu)點是可以同時進(jìn)行很多交換,若干計算機可以共享一條電纜。

協(xié)議(protocol)是一組精確的規(guī)則集合,它定義了計算機之間如何通訊,包括:地址格式,數(shù)據(jù)如何分包等。公開發(fā)布的協(xié)議允許不同廠商的軟件和設(shè)備相互通訊。比如web瀏覽器不用關(guān)心服務(wù)器是Unix工作站還是Windows box或者M(jìn)ac機,因為服務(wù)器和瀏覽器都使用同樣的平臺無關(guān)的http協(xié)議交談。

2.2 The Layers of a Network

標(biāo)準(zhǔn)TCP/IP四層模型:
Application Layer
Transport Layer (TCP,UDP)
InternetLayer (IP)
The Host-To-Network Layer (Ethernet,LocalTalk,FDDI...)

90%的Java網(wǎng)絡(luò)編程處于應(yīng)用層,只須同傳輸層對話。剩下的10%處于傳輸層,同應(yīng)用層和網(wǎng)間網(wǎng)層對話。

應(yīng)用層看起來是直接同其他host的應(yīng)用層對話的,網(wǎng)絡(luò)在兩個應(yīng)用層之間創(chuàng)建了一條邏輯鏈路。

2.2.1 The Host-to-Network Layer
(也稱作link layer,data link layer, network-interface layer)
這一層定義了某個特定的網(wǎng)絡(luò)接口,例如以太網(wǎng)卡,如何通過它的物理連接向本地網(wǎng)絡(luò)或世界發(fā)送IP數(shù)據(jù)包。
物理層對Java是透明的。數(shù)據(jù)鏈路層對Java程序員沒有直接影響。然而,你在應(yīng)用層發(fā)送的數(shù)據(jù)可以優(yōu)化以適應(yīng)特定的數(shù)據(jù)鏈路層的本地包大小(the native packet size of a particular data link layer),這樣性能上會有所提升。不過,不優(yōu)化程序也正常運行。

2.2.2 The Internet Layer
在OSI模型中,Internet Layer對應(yīng)于更一般化的名字network layer。一個network layer協(xié)議定義bits和bytes如何組織為packets,也定義了不同機器如何找到彼此的地址方案。Internet Protocol(IP)是應(yīng)用最廣泛的network layer協(xié)議,也是Java唯一理解的network layer協(xié)議。其他的network layer協(xié)議有NetWare網(wǎng)絡(luò)上的IPX協(xié)議,Mac機上的AppleTalk協(xié)議,Windows上的NetBEUI協(xié)議。各種network layer協(xié)議對于底層是獨立的,AppleTalk,IP,IPX和NetBEUI都可以被用于以太網(wǎng),令牌環(huán)網(wǎng)或使用其他數(shù)據(jù)鏈路層協(xié)議的網(wǎng)絡(luò),而這些數(shù)據(jù)鏈路層協(xié)議本身也是可以運行在不同種類的物理層之上的。

internet layer傳輸?shù)陌Q作datagrams,每個IP datagram包括一個20~60字節(jié)的頭和最大65515字節(jié)的數(shù)據(jù)。(實際上多數(shù)IP datagram非常小)
IP數(shù)據(jù)包頭的內(nèi)容為:
4-bit版本號
4-bit頭長度
1-byte type of service
2-byte datagram長度:包括頭的長度
2-byte 標(biāo)識號
3-bit flags
13-bit fragment offset
1-byte time-to-live(TTL)
1-byte protocol:TCP為6,UDP為17 (都是上一層傳輸層的協(xié)議)
2-byte 頭校驗和
4-byte 源地址
4-byte 目的地址

2.2.3 The Transport Layer
傳輸層負(fù)責(zé)保證所有的包正確的被收到,順序正確,數(shù)據(jù)也正確。如果包丟失了,傳輸層要求發(fā)送者重發(fā)丟失的包。
傳輸層有兩種協(xié)議,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。TCP保證包不丟失,內(nèi)容和順序都正確;UDP只保證接受到的包正確,不管是否有包丟失了或到達(dá)的包順序是否正確。

2.2.4 The Application Layer
應(yīng)用層向用戶傳送數(shù)據(jù)。下面三層一起解決了數(shù)據(jù)如何從一個計算機到達(dá)另一個;而應(yīng)用層決定數(shù)據(jù)到達(dá)后如何處理。Java網(wǎng)絡(luò)編程主要是在應(yīng)用層。常見的應(yīng)用層協(xié)議有:HTTP,SMTP,POP,FTP等。你的程序可以定義自己的應(yīng)用層協(xié)議。

Domain Names: 域名系統(tǒng)(DNS:Domain Name System)將主機名解析為數(shù)字的Internet地址。Java程序使用java.net.InetAddress類

總結(jié)

以上是生活随笔為你收集整理的Java Network Programming 笔记(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。