코드 그라데이션
Day32. 네트워크 (1) TCP/IP, OSI 7계층 본문
TCP/IP ( ≒ 인터넷 프로토콜 스위트(Internet Protocol Suite)
: 인터넷에서 데이터를 주고받기 위해 사용되는 프로토콜
- TCP (Transmission Control Protocol)와 IP (Internet Protocol)로 구성됨.
IP는 패킷을 전송하는 역할을 하며,
TCP는 전송 중인 데이터의 신뢰성을 보장하고 전송 속도를 조절하는 역할을 함.
TCP/IP의 데이터 전송 과정
- 데이터를 패킷으로 분할한다.
- IP 프로토콜을 사용하여 각 패킷의 출발지와 목적지를 설정한다.
- 각 패킷이 도착할 때까지 전송될 경로를 결정한다.
- TCP 프로토콜을 사용하여 패킷 전송의 신뢰성을 보장하게 만든다.
- 전송된 패킷을 재조립하여 전체 데이터를 복원한다.
- 인터넷에서 가장 널리 사용되는 프로토콜이며,
웹 브라우저, 이메일 클라이언트, 파일 전송 프로그램 등 다양한 애플리케이션에서 사용한다.
OSI 7계층
(OSI : Open Systems InterConnection)
: 네트워크 프로토콜을 계층별로 나누어 정의한 모델
- 각 계층은 네트워크에서 수행하는 특정한 작업에 대한 규약과 프로토콜을 정의한다.
- 이러한 계층적인 구조를 통해 네트워크는 기능적으로 분리되어 있으며,
계층 간에는 서로 독립적인 인터페이스가 존재.
- 이를 통해 하위 계층과 상위 계층 간의 인터페이스만을 정의하면 된다.
아래에서부터
물리 계층 (Physical Layer)
데이터 링크 계층 (Data Link Layer)
네트워크 계층 (Network Layer)
전송 계층 (Transport Layer)
세션 계층 (Session Layer)
표현 계층 (Presentation Layer)
응용 계층 (Application Layer)
1. 응용계층(Application Layer)
: 사용자와 애플리케이션 간의 인터페이스를 제공하며, 응용 프로그램 간의 통신을 가능하게 한다.
이 계층에서는 데이터를 사용자가 이해할 수 있는 형식으로 변환하고, 사용자 인터페이스 기능을 제공한다.
ex. HTTP, FTP, SMTP, DNS, Telnet 등
2. 표현계층(Presentation Layer)
: 데이터를 애플리케이션에서 사용할 수 있는 형식으로 변환하고, 데이터의 암호화 및 복호화 등을 수행.
이 계층에서는 데이터를 인코딩하거나 디코딩하여 네트워크에서 전송 가능한 형식으로 변환한다.
ex. JPEG, MPEG, SSL, SSH 등.
3. 세선 계층(Session Layer)
: 네트워크 연결을 설정하고, 세션 관리를 수행.
이 계층에서는 데이터 전송 중 발생할 수 있는 문제에 대한 처리를 담당하며, 세션의 시작과 종료를 담당.
ex. NetBIOS, RPC 등.
4. 전송계층(Transport Layer):
: 데이터를 전송하기 위한 연결을 설정하고, 데이터를 신뢰성 있게 전송.
이 계층에서는 데이터의 분할과 재조립, 오류 검출 및 복구 등의 기능을 수행.
ex. TCP, UDP 등.
5. 네트워크계층(Network Layer)
: 데이터를 목적지로 전달하기 위한 경로를 선택하고, 패킷을 분할하거나 재조립한다.
이 계층에서는 데이터의 전송을 위한 라우팅, 흐름 제어 및 혼잡 제어 등의 기능을 제공.
ex. IP, ICMP 등.
6. 데이터 링크계층(Data Link Layer)
: 물리적인 네트워크와 상호작용하여 데이터를 전송합니다.
이 계층에서는 프레임(Frame) 단위로 데이터를 전송하며, 데이터의 오류 검출과 수정을 수행.
또한, 충돌 제어 및 흐름 제어 등의 기능을 제공합니다.
이 계층에서는 물리적인 매체와의 연결을 담당하는데, 이에 이더넷, 와이파이, 블루투스 등과 같은 기술이 사용된다.
ex.(프로토콜) 이더넷, 프레임 릴레이 등이 있습니다.
7. 물리계층(Physical Layer)
: 물리적인 네트워크 전송을 담당하며, 데이터를 전기 신호, 광 신호, 무선 신호 등으로 변환하여 전송합니다.
이 계층에서는 비트(Bit) 단위로 데이터를 전송합니다.
또한, 데이터 전송에 필요한 전기 신호, 주파수 및 전압 등의 물리적인 특성을 정의합니다.
이 계층에서는 물리적인 케이블, 무선 주파수, 광섬유 케이블 등의 물리적인 매체를 사용합니다.
ex.(프로토콜) 이더넷 케이블, Wi-Fi, 블루투스 등.
InetAddress 클래스
: 자바에서 IP 주소를 나타내는 클래스입니다.
- 이 클래스는 네트워크 상에서 특정 호스트의 IP 주소를 얻기 위해 사용.
- 도메인 이름을 IP 주소로 변환하거나, IP 주소에서 도메인 이름을 가져오는 등의 작업을 수행.
- 네트워크 연결을 확인하고, 네트워크 서비스를 사용할 수 있는지 여부를 확인하는 등의 기능도 제공
활용 예시
getByName() 메서드를 사용하여 도메인 이름을 InetAddress 객체로 변환
getHostAddress() 메서드를 사용하여 InetAddress 객체에서 IP 주소를 가져올 수 있다.
public class InformationTest {
public static void main(String[] args) throws UnknownHostException, MalformedURLException {
InetAddress ia = InetAddress.getLocalHost();
System.out.println("컴퓨터 이름 : "+ia.getHostName());
System.out.println("컴퓨터 IP : "+ia.getHostAddress());
InetAddress[] all = InetAddress.getAllByName("www.google.com");
for(InetAddress a : all) {
System.out.println(a);
}
URL starbuks = new URL("https://www.starbucks.kr");
System.out.println("프로토콜 : "+ starbuks.getProtocol());
System.out.println("포트 : "+starbuks.getPort());
System.out.println("호스트 : "+starbuks.getHost());
System.out.println("파일(경로포함) : "+starbuks.getFile());
System.out.println("전체 URL : "+starbuks.toExternalForm());
}
}
출력 결과
컴퓨터 이름 : MyCom
컴퓨터 IP : 171.80.3.91
www.google.com/172.217.25.164
프로토콜 : https
포트 : -1
호스트 : www.starbucks.co.kr
파일(경로포함) : /index.do
전체 URL : https://www.starbucks.co.kr
'Java > Mega' 카테고리의 다른 글
Day32. 네트워크 (3) 예제 (0) | 2023.05.06 |
---|---|
Day32. 네트워크 (2) TCP / UDP (0) | 2023.05.06 |
<보충> Day13. call by Value와 call by Reference (0) | 2023.05.06 |
Thread 퀴즈 (0) | 2023.05.05 |
<보충> Day25. equals 예제 (0) | 2023.05.04 |