網絡編程(1)TCP/IP 、UDP協議介紹

1、計算機網絡就是把各個計算機聯繫到一起,讓我網絡中的計算機可以相互通信。網絡編程就是如何在程序中實現兩臺計算機的通信。網絡通信就是兩個進程之間在通信。

2、TCP/IP簡介

爲了把全世界的所有不同類型的計算機都連接起來,就必須規定一套全球通用的協議,爲了實現互聯網這個目標,互聯網協議簇(Internet Protocol Suite)就是通用協議標準。

因爲互聯網協議包含了上百種協議標準,但是最重要的兩個協議是TCP和IP協議,所以,大家把互聯網的協議簡稱TCP/IP協議。

通信的時候,雙方必須知道對方的標識,好比發郵件必須知道對方的郵件地址。互聯網上每個計算機的唯一標識就是IP地址,類似123.123.123.123。如果一臺計算機同時接入到兩個或更多的網絡,比如路由器,它就會有兩個或多個IP地址,所以,IP地址對應的實際上是計算機的網絡接口,通常是網卡。

(1)、IP協議:按塊發送,途徑多個路由,但不能保證到達,也不能保證順序到達。負責把數據從一臺計算機通過網絡發送到另一臺計算機,數據被分割成一小塊一小塊,然後通過IP包發送出去。多條線路時,通常中間還有路由器。

(2)、TCP協議:建立在IP協議智商的。TCP負責在兩臺計算機之間建立可靠連接,保證數據包按順序到達。TCP協議會痛過握手建立連接,然後對每個IP包編號,確保對方按順序收到,如果丟包,就自動重發。

許許多多的協議都是建立在TCP協議基礎之上的,比如用於瀏覽器的HTTP協議和發送郵件的SMTP協議等

一個IP包出了包含要傳輸的數據之外,還包含IP地址和目標地址,源端口和目標端口。

端口的作用,當一個IP包來了之後,交給哪個跑着的網絡程序就需要哪個端口來區分。每個網絡程序都向操作系統申請唯一的端口號,這樣兩個進程在兩臺計算機之間建立網絡連接就需要各自的IP地址和各自的端口號

TCP/IP協議
(1)建構比較簡單,只有四層
(2)應用層(HTTP,FTP,DNS)
     傳輸層(TCP,UDP)
     網絡層(IP、ICMP、IGMP)
     鏈路層(驅動程序、接口)
     網絡層是TCP/IP協議的核心
 
 IP地址和端口號
 (1)每臺機子都有標識號,每臺機子都會分配一個
 IP地址,如果沒有分配就不能上網。用的比較廣泛的是
 使用的IPv4,四段數字,第一位最255,用一個字節存儲。
 (2)隨着網絡規模的增加,IP地址資源面臨枯竭。出現了IPv6
 (3)特殊IP:127.0.0.1表示你自己,誰用代表誰也稱爲
 本機迴環地址
 (4)通過IP地址找到了計算機,但是不知道是怎麼通信
 想要傳輸數據必須得知道端口號,不屬於物理段端口(USB)
 屬於邏輯端口,由操作系統進行分配。
 源計算機====》目標計算機===》不同端口號的應用程序
 範圍是0-65535  1024之前的端口號不能用,已被操作系統的
 程序佔用了。每個端口號上只能有一個應用程序

 InetAddress
 (1)提供了n多方法對ip地址進行操作。表示互聯網中
 的ip地址,java,net.InetAddress,不能new,調用靜態方法
 (2)getLocalHost()獲取本地主機
      getHostname()獲取主機名
      getHostAddress()獲取IP地址
      相當於幫你自己切割了第一個方法返回的字符串
      getByName(String hostname)拿別人的ip
      括號裏面寫主機名,可能會重複,推薦些ip地址
  
UDP與TCP協議
  (1)UDP特點:是無連接通信協議,不能保證完整性和安全性發送端不會
  確認接收端在不在,接收方也不會反饋,消耗資源少,通信效率高,
  比如視頻會議關鍵點不管對方在不在線,不害怕丟數據。
  面向無連接,數據在64k以內。大了不安全,有隱患。
  (2)TCP協議:面向連接協議,提供了兩臺計算機之間無差錯的
  可靠的連接,必須經過三次握手,必須確認連接,連接速度比較慢
  但是爲了安全,犧牲速度也理所應當。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章