標籤:適合 基礎知識 定義 點播 tcp 理解 術語 rem 等等
本文主要記錄網路編程的一些基礎知識,學了前班部分,對專業術語有些蒙,但是,收貨也是很多很多的。觀察了自己電腦的進程,尋找其他網路地址的IP,對互連網的層次關係有了更深一步的瞭解。下面多是概念的摘錄,有時間我還要回來再看看,加深理解。
目錄:1.網路編程的基礎知識 1.1 網路通訊協定 1.2 tcp /ip 1.3 IP地址 1.4 Port(連接埠號碼)2 UDP/Tcp3 OSI參考模型
1 網路編程的基礎知識
1.1 網路通訊協定
規定了電腦之間串連的物理機械,電器等特性,及電腦間的相互定址規則,以及資料發送衝突的解決辦法,分段傳輸與解決大資料包的傳輸方式等等。
---機械特性,比如網線和網卡
---電器特性,比如電平3伏為1,一3為0
. HTTP1.1(Hypertext Transfer Protocol Vertion 1.1)超文字傳輸通訊協定 (HTTP)-版本1.1
. ARP(Address Resolution Protocol)位址解析通訊協定
. SNMP(Simple Network Management Protocol)網路管理協議
. CMIP(Common Management Information Protocol)通用管理資訊協議
. DHCP(Dynamic Host Configuration Protocol)動態主機設定通訊協定
. FTP(File Transfer Protocol)檔案傳輸通訊協定
. IPv6(Internet Protocol Version 6)Internet協議-版本6
. IPX/SPX(Internetwork Packet Exchange/Sequential PacketExchange)互連網包交換/順序包交換
. POP3(Post Office Protocol Version 3)郵局協議-版本3
. PPP(Point to Point Protocol)點對點通訊協定 (PPP)
. SMTP(Simple Mail Transfer Protocol)簡單郵件傳送協議
. TELNET Protocol虛擬終端協議
. UDP(User Datagram Protocol)使用者資料包通訊協定
1.2 tcp /ip
網路通訊協定也有多種 TCP /IP 只是一種
大多數網路程式,都是以這個協議為基礎的。
TCP/IP協議族中包括上百個互為關聯的協議有幾個常用協議如下:
1、Telnet(Remote Login):提供遠程登入功能,一台電腦使用者可以登入到遠端另一台電腦上,如同在遠程主機上直接操作一樣。
2、FTP(File Transfer Protocol):遠程檔案傳輸通訊協定,允許使用者將遠程主機上的檔案拷貝到自己的電腦上。
3、SMTP(Simple Mail transfer Protocol):簡單郵政傳輸協議,用於傳輸電子郵件。
4、NFS(Network File Server):網路檔案伺服器,可使多台電腦透明地訪問彼此的目錄。
5、UDP(User Datagram Protocol):使用者資料包協議,它和TCP一樣位於傳輸層,和IP協議配合使用,在傳輸資料時省去包頭,但它不能提供資料包的重傳,所以適合傳輸較短的檔案。
1.3 IP地址(我查看了自己的IP和其他網站的IP)
每個internet上的 主機和路由器都由一個ip地址表示,它包擴網路號和主機號,所有ip地址, 都是32位的,按國際標準,分為a b c d e 五類
a 0+7位網路號 +主機號 1.0.0.0 到 127.255.255.255 之間
b 10+14位網路號 +主機號 127.0.0.0 到191.255.255.255之間
c 110+21位網路號 +主機號 192.0.0.0 到 223.255.255.255
d 1110+多點播送地址 224.0.0.0 到 239.255.255.255
e 11110+留做將來使用 240.0.0.0+ 247.255.255.255
==本地迴路地址 127.0.0.1
電腦中正確安裝TCP/IP協議後,電腦中都會有一個稱做本地迴路的地址 發往 127.0.0.1 的資料不經過網卡傳遞,而是指接被本機電腦中Tcp/ip協議棧中的幾個上層協議接收,是一個用於本機電腦上使用的特殊地址,使用Ping就可以檢查TCP/IP協議是否正確安裝, 它沒有和網卡綁定, 網卡沒有正確串連或是沒有網線的情況下,仍可使用該地址4 個位元組表示的是 ipv4 16 個位元組表示的IP 是ipv6。
java中 描述IP地址的對象是 InetAddress 直接已知子類: Inet4Address, Inet6Address
import java.net.InetAddress;import java.net.UnknownHostException;public class InetTest1 { public static void main(String[] args) throws UnknownHostException { ipDemo(); } public static void ipDemo() throws UnknownHostException { InetAddress[] netAddr = InetAddress.getAllByName("www.youku.com"); for (InetAddress s : netAddr) { System.out.println(s.getHostAddress()); } System.out.println("=====分割線====="); InetAddress[] netAddr2 = InetAddress.getAllByName("www.baidu.com"); for (InetAddress s : netAddr2) { System.out.println(s.getHostAddress()); } }}
1.4 Port(連接埠號碼)
因為一個電腦上同時可運行多個網路程式,而IP地址只能保證把資料送到某個電腦上,但不能保證把資料交給電腦上的每個程式,因此每個發送的網路資料包的頭部,都包含有一個稱為連接埠號碼的整數 即Port, 是一個佔用兩個位元組的整數,用於表示這個資料包該交由哪個應用程式來處理,與資料包中的連接埠號碼相對應,必須為電腦上的網路程式也指定一個連接埠號碼,告訴網路程式應該接收哪個連接埠號碼的程式,一台電腦上不能有兩個使用同一連接埠號碼的程式,範圍是0-65535 0-1023之間的稱為有名連接埠.用於一些知名的網路服務和應用。當電腦接收到一個網路程式發送的資料包後,驅動程式會根據資料包中指定的連接埠號碼,知道該交給哪個應用程式。 網路通迅,確切的說,不是兩台電腦之間在收發資料,而是兩個網路程式之間在收發資料
查看連接埠的命令 netstat -noa
====2 UDP/Tcp
---- TCP (Transmission Control Protocol )傳輸控制通訊協定,是而向串連的通訊協定,提供兩台電腦之間的可靠和無差錯的資料轉送資料來源和目標之間或建立一個虛擬串連,建立後,電腦之間就會把資料,當作雙向位元組流進行交換。
---- UDP 使用者資料包通訊協定,(USER datagram Protocol) 是不需連線的通訊協定,不保證資料的可靠傳輸,能夠向若干個目標發送和接收資料,資料包會有丟失\的時候。
---- TCP UDP 的資料包的框架格式 如下
協議類型 源IP 目標IP 源連接埠 目標連接埠 幀序號 幀資料
其中協議類型用於區分TCP UDP
====3 OSI參考模型(這裡要重點理解!!)
OSI參考模型 (Open System Interconnect 開放式網路互聯) // TCP/IP參考模型
七層:
應用程式層 Application 一些終端應用
展示層 Presentation 對接收的資料進行解釋,加密和解密(把電腦能識別的東西.轉換成人能識別的東西)片聲音等
會話層 Session 建立資料轉送通路
傳輸層 Transport 定義了一些資料轉送的協議和連接埠號碼 常把這一層的資料叫段 //網關
網路層 將從下層接收到的資料進行IP地址的封裝和解裝 在這一層工作的裝置叫路由器, 常把這層的資料叫包
資料連結層 Data Link 將從物理層接收的資料進行MAC(網卡地址)的封裝和解裝,常把這一層的資料叫幀 在這一層工作的裝置叫交換器,網卡,橋接器
物理屋 Physical,這一層的資料叫位元 //光纖
TCP/IP分層模型(TCP/IP Layening Model)被稱作網際網路分層模型(Internet Layering Model)、網際網路參考模型(Internet Reference Model)。
第四層,應用程式層
第三層,傳輸層
第二層,網間層
第一層,網路介面
Java基礎——網路編程(一)