-
서버 통신 - Socket / UDPJava 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 사용
반응형'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