复习-网络编程之IP和端口号
一、 網(wǎng)絡(luò)編程中有兩個(gè)主要的問題:
1.如何準(zhǔn)確地定位網(wǎng)絡(luò)上一臺(tái)或多臺(tái)主機(jī);定位主機(jī)上的特定的應(yīng)用(分別對(duì)應(yīng)2.1);
2.找到主機(jī)后如何可推高效地進(jìn)行數(shù)據(jù)傳輸(分別對(duì)應(yīng)2.2);
二、網(wǎng)絡(luò)編程中的兩個(gè)要素:
1.IP和端口號(hào);
2.提供網(wǎng)絡(luò)通信協(xié)議:TCP/IP參考模型(應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、物理+數(shù)據(jù)鏈路層)
三、通信要素一:IP和端口號(hào)
- IP:
1.IP:唯一的標(biāo)識(shí)Internet. 上的計(jì)算機(jī)(通信實(shí)體);
2.在Java 中使用InetAddress類代表IP;
3.IP分類: IPv4(4個(gè)字節(jié)組成,4個(gè)0-255,點(diǎn)分十進(jìn)制表示)和IPv6(16字節(jié),8個(gè)無符號(hào)整數(shù),每個(gè)整數(shù)用冒號(hào)分開:四個(gè)十六進(jìn)制位表示);萬維網(wǎng)和局域網(wǎng);
4.域名:www.baidu.com; www.sina.com;
5.本地回路地址:127.0.0.1,對(duì)應(yīng):localhost;
6.如何實(shí)例化InetAddress類?
getByName(String host); getLocalHost();
InetAddress類的2個(gè)常用方法:getHostName() / getHostAddress();
7.Internet 上的主機(jī)有兩種方式表示地址:
a. 域名(hostName): www.atguigu.com
b. IP地址(hostAddress): 202. 108.35.210
①InetAddress類主要表示IP地址,InetAddress類的一個(gè)對(duì)象就代表一個(gè)具體的IP地址,有兩個(gè)子類: Inet4Address、 Inet6Address
②InetAddress類對(duì)象含有一個(gè)Internet 主機(jī)地址的域名和IP地址:www.baidu.com; 和 14.215.177.39。
域名解析:域名容易記憶,當(dāng)在連接網(wǎng)將時(shí)輸入-一個(gè)主機(jī)的域名后,域名服務(wù)器(DNS)負(fù)責(zé)將域名轉(zhuǎn)化成IP地址,這樣才能和主機(jī)建立連接。
輸入網(wǎng)址www.baidu.com,
先通過本機(jī)hosts(C:\Windows\System32\drivers\etc\hosts)尋找是否有輸入域名地址:
如果沒有,通過DNS域名解析服務(wù)器解析出ip地址:14.215.177.39,再通過解析出的ip地址訪問到服務(wù)器:
- 端口號(hào):
1.端口號(hào)標(biāo)識(shí)正在計(jì)算機(jī)上運(yùn)行的進(jìn)程(程序) ,不同的進(jìn)程有不同的端口號(hào);被規(guī)定為一個(gè)16位的整數(shù)0~65535。
2.端口分類:
a. 公認(rèn)端口: 0~1023。 被預(yù)先定義的服務(wù)通信占用(如: HTTP占用端口
80,FTP 占用端口21,Telnet占用端口23);
b. 注冊(cè)端口: 1024~49151。 分配給用戶進(jìn)程或應(yīng)用程序。( 如: Tomcat占
用端口8080,MySQL占用端口3306,Oracle占用端口1521等) 。
c. 動(dòng)態(tài)/私有端口: 49152~65535。
3.端口號(hào)與IP地址的組合得出- 一個(gè)網(wǎng)絡(luò)套接字: Socket。
四、網(wǎng)絡(luò)通信要素二:網(wǎng)絡(luò)通信協(xié)議
TCP/IP協(xié)議簇:
1.傳輸層協(xié)議中有兩個(gè)非常重要的協(xié)議:.
a. 傳輸控制協(xié)議TCP(Transmission Control Protocol)
b. 用戶數(shù)據(jù)報(bào)協(xié)議UDP(User Datagram Protocol)。
2.TCP/IP以其兩個(gè)主要協(xié)議:傳輸控制協(xié)議(TCP)和網(wǎng)絡(luò)互聯(lián)協(xié)議(IP)而得
名,實(shí)際上是一組協(xié)議,包括多個(gè)具有不同功能且互為關(guān)聯(lián)的協(xié)議。
3.IP(Internet Protocol)協(xié)議是網(wǎng)絡(luò)層的主要協(xié)議,支持網(wǎng)間互連的數(shù)據(jù)通信。
4.TCP/IP協(xié)議模型從更實(shí)用的角度出發(fā),形成了高效的四層體系結(jié)構(gòu),即
物理鏈路層、IP層、傳輸層和應(yīng)用層。
TCP和UDP
-
TCP協(xié)議:
1.使用TCP協(xié)議前,須先建立TCP連接,形成傳輸數(shù)據(jù)通道;
2.傳輸前,采用“三次握手”方式,點(diǎn)對(duì)點(diǎn)通信,是可靠的;
3.TCP協(xié)議進(jìn)行通信的兩個(gè)應(yīng)用進(jìn)程:客戶端、服務(wù)端;
4.在連接中可進(jìn)行大數(shù)據(jù)量的傳輸;
5.傳輸完畢,需釋放已建立的連接,效率低。 -
UDP協(xié)議:
1.將數(shù)據(jù)、源、目的封裝成數(shù)據(jù)包,不需要建立連接;
2.每個(gè)數(shù)據(jù)報(bào)的大小限制在64K內(nèi);
3.發(fā)送不管對(duì)方是否準(zhǔn)備好,接收方收到也不確認(rèn),故是不可靠的;
4.可以廣播發(fā)送;
5.發(fā)送數(shù)據(jù)結(jié)束時(shí)無需釋放資源,開銷小,速度快。
tips:
1.一個(gè)IP對(duì)應(yīng)著InetAddress類的一個(gè)對(duì)象;
2.實(shí)例化InetAddress類的兩種方式:
a. InetAddress.getByName(String host);
b. InetAddress.getLocalHost();//獲取本地ip
3.兩個(gè)常用方法:
a. getHostName();
b. getHostAddress();
總結(jié)
以上是生活随笔為你收集整理的复习-网络编程之IP和端口号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工厂方法模式(Factory Metho
- 下一篇: 关于表达式i+++i+++i++有感