ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서버 통신 - Socket / UDP
    Java 2020. 2. 7. 09:38
    반응형

    네트워크 레이어

    OSI 7 layer

    Layer 7. [Data] Application Layer - Network Process to Application

    Layer 6. [Data] Presentation Layer - Data representation and Encrytion

    Layer 5. [Data] Serssion Layer - Interhost communication

    Layer 4. [Segments] Transport Layer - End-to-End connections and Realiability

    Layer 3. [Packets] Network Layer - Path Determination and IP (Logical addressing)

    Layer 2. [Frames] DataLink Layer - MAC and LLC (physical addressing)

    Layer 1. [Bits] Physical Layer - Media, signal and Binary Transmission

    TCP/IP 4 Layer

    Layer 4. Application Layer - OSI 7 : 5/6/7 - DHCP, FTP, DNS, HTTP, POP, SMTP ...

    Layer 3. [Segment] Transport Layer - OSI 7 : 4 - TCP, UDP

    Layer 2. [Dategram] Internet Layer - OSI 7 : 3 - IP Address:IPv4 IPv6

    Layer 1. [Frame] Network Access Layer - OSI 1 - Ethernet cable, wire... - OSI 2 - MAC Address

    프로토콜 - TCP(Transmission Control Protocol)

    Application Layer 중 가장 대표적인 HTTP, FTP, Telnet들은 모두 TCP 통신을 함

    Java에서 제공하는 API를 사용하면 TCP 통신을 할 수 있음

    가장 대표적인 통신 방법으로 "연결 기반 프로토콜"이라고 불림 - 상대방이 데이터를 받았는지 확실히 보장할 수 있음

    대신 UDP에 비해 비싸고 느리며 무거움(처리 절차가 많기 때문)

    프로토콜 - UDP(User Datagram Protocol)

    다른 장비가 데이터를 제대로 받았는지에 대한 보장이 없음

    데이터의 전송이 꼭 보장되어야 할 필요가 없는 시스템들은 UDP를 사용하면 더 빠름

    포트(port)

    대표 port : 80 - Web(http), 443 - SSL(https)

    0 ~ 65,535까지 사용 가능하지만(16bit 구성), 0 ~ 1023까지는 사용이 제한되어있으므로 그 외의 값을 임의로 사용

    Socket 통신 (java.net 패키지에서 확인)

    Socket Class

    간단한 소켓 통신 

    UDP 통신

    Datagram 관련 Class

    간단한 UDP 통신

    UDP의 데이터 보장하지 않음

    TCP 통신과 다르게 UDP는 데이터가 성공적으로 전송되지 않아도 예외를 발생시키지 않음

    즉, 서버 프로그램은 수행하지 않고, 클라이언트 프로그램만 수행하더라도 아무런 이상 없이 프로그램 실행 및 종료됨

    자바 내에서의 웹페이지 요청

    URL 클래스 사용

    간단한 요청은 처리할 수 있음

    단, 연결에 대한 상세 설정을 할 수 없음

    Apache의 HTTP Componets 사용 

    http://hc.apache.org/ 참고

    반응형

    'Java' 카테고리의 다른 글

    Lambda Expression 1. 람다식  (0) 2020.02.08
    Enum(열거형)  (0) 2020.02.08
    Serializable  (0) 2020.02.07
    Java NIO  (0) 2020.02.06
    JAVA I/O  (0) 2020.02.06

    댓글

Designed by Tistory.