1. 程式人生 > 實用技巧 >【學習筆記/題解】虛樹/[SDOI2011]消耗戰

【學習筆記/題解】虛樹/[SDOI2011]消耗戰

網路程式設計

信件

  1. 打電話 --連線--通了 TCP
  2. 發簡訊 --傳送即可-- UDP

計算機網路

計算機網路是指將地理位置不同的具有獨立功能的多臺計算機及其外部裝置,通過通訊線路連線起來,在網路作業系統網路管理軟體網路通訊協議的管理和協調下,實現資源共享和資訊傳遞的計算機系統

如何準確定位網路上一臺主機?

IP地址:埠號

OSI七層模型

OSI七層模型 功能 對應的網路協議 TCP/IP四層概念模型
應用層 檔案傳輸,檔案管理,電子郵件的資訊處理——apdu HTTP、TFTP, FTP, NFS, WAIS、SMTP 應用層
表示層 確保一個系統的應用層傳送的訊息可以被另一個系統的應用層讀取,編碼轉換,資料解析,管理資料的解密和加密,最小單位——ppdu Telnet, Rlogin, SNMP, Gopher
會話層 負責在網路中的兩節點建立,維持和終止通訊,在一層協議中,可以解決節點連線的協調和管理問題。包括通訊連線的建立,保持會話過程通訊連線的暢通,兩節點之間的對話,決定通訊是否被終端一斤通訊終端是決定從何處重新發送,最小單位——spdu SMTP, DNS
傳輸層 定義一些傳輸資料的協議和埠。傳輸協議同時進行流量控制,或是根據接收方接收資料的快慢程度,規定適當的傳送速率,解決傳輸效率及能力的問題——tpdu TCP, UDP 傳輸層
網路層 控制子網的執行,如邏輯編址,分組傳輸,路由選擇最小單位——分組(包)報文 IP, ICMP, ARP, RARP, AKP, UUCP 網路層
資料鏈路層 主要是對物理層傳輸的位元流包裝,檢測保證資料傳輸的可靠性,將物理層接收的資料進行MAC(媒體訪問控制)地址的封裝和解封裝,也可以簡單的理解為物理定址。交換機就處在這一層,最小的傳輸單位——幀 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,幀中繼 資料鏈路層
物理層 定義物理裝置的標準,主要對物理連線方式,電氣特性,機械特性等制定統一標準,傳輸位元流,因此最小的傳輸單位——位(位元流) IEEE 802.1A, IEEE 802.2到IEEE 802.

小結

  1. 兩個主要問題
    • 如何定位到一臺主機
    • 找到主機後,如何進行通訊
  2. 要素
    • ip 、埠號
    • 網路通訊協議 udp、tcp
  3. 萬物皆物件

IP

  • 127.0.0.1 : localhost
  • IP地址分類
    • ipv4、ipv6
      • ipv4 127.0.0.1 ,4個位元組組成,0 ~ 255
      • ipv6 ,128位,8個無符號整數
    • 公網(物聯網)、私網(區域網)

ip類:InetAddress

public static void main(String[] args) {
        try {
            //查詢本機地址
            InetAddress inetAddress1 = InetAddress.getByName("localhost");
//            查詢百度地址
            InetAddress inetAddress2 = InetAddress.getByName("www.baidu.com");
            System.out.println(inetAddress1);
            System.out.println(inetAddress2);
//            常用方法
//            System.out.println(inetAddress2.getAddress());
//            System.out.println(inetAddress2.getCanonicalHostName());
            System.out.println(inetAddress2.getHostAddress()); //ip
            System.out.println(inetAddress2.getHostName()); //主機名,域名
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

  • 不同程序有不同的埠號,區分軟體

  • 範圍 0 ~ 65535

  • 埠分類

    • 公有埠 0 ~ 1023

      • http : 80
      • https : 443
      • ftp : 21
      • telent : 23
    • 程式註冊埠:2014 ~ 49151

      • tomcat : 8080
      • mysql:3306
      • oracle :1521
    • 公有、私有:49152 ~ 65535

      • netstat -ano #檢視所有埠
        netstat -ano | findstr "5900" #檢視指定埠
        

通訊協議

協議:約定,就像我們溝通需要普通話

  • TCP :使用者傳輸協議
    • 打電話
    • 連結、穩定
    • 三次握手、四次揮手
    • 客戶端、服務端
    • 傳輸完成,釋放連結、效率低
  • UDP:使用者資料包協議
    • 發簡訊
    • 不連線、不穩定