1. OSI(Open System Interconnection)
- 호스트 간의 통신을 위해 기능들을 계층 별로 구분하여 정의한 것
1. Physical Layer (물리 계층)
- 물리적 연결 형태(유선 or 무선)
2. Data Link Layer (데이터 링크 계층)
- MAC 주소(host의 물리적 주소) 사용
- 물리적 전송 오류 문제 해결 ex) 0101 => 1101 으로 변경된 경우
3. Network Layer (네트워크 계층)
- 데이터 전송 경로 결정
- IP주소(인터넷 접속시 할당되는 논리적 주소) 사용
- Router가 IP주소를 보고 목적지까지 안내
4. Transport Layer (전송 계층)
- Port 번호(process 구분) 사용
5. Session Layer (세션 계층)
- 송수신 호스트를 연결하는 세션 지원
ex) web page에 로그인하여 언제까지 유효하게 할 것인가?
6. Presentation Layer (표현 계층)
- 데이터의 의미 & 표현 방법을 처리
ex) 암호화 압축, 동영상(이미지&소리 연관성)
7. Application Layer (응용 계층)
- 사용자가 사용하는 프로토콜
ex) 메일, HTTP
+) 시스템공간(1-4 계층) : 운영체제 수준에서 정의
+) 사용자공간(5-7 계층) : 사용자가 정의한 프로그램에 따라 동작
2. Application 구조
1. 서버-클라이언트 구조
1) 서버
- 항상 동작중
- 고정 IP 사용
2) 클라이언트
- 서버에 서비스 요청
- 동적 IP 사용 가능
- 클라이언트 간의 직접적 통신 불가 : 서로 언제 들어와있는지 불명확하기 때문
2. P2P (Peer-to-Peer)
- 호스트간 직접 통신 가능
- IP 변경 가능
- 특정 단말에 부하(load)가 집중되지 않는다.
3. Socket Programming
- 소켓을 이용한 네트워크로 연결된 컴퓨터 사이에서의 데이터 송수신 프로그램
1. Socket
- 운영체제에 의해 제공되는 소프트웨어적 장치 (1~4계층 담당)
- socket의 주소정보 = IP와 PORT 번호로 구성
2. Server
- Server는 기본적으로 2개의 socket이 필요하다.
1) 연결 요청 받기 위한 socket
2) client와 데이터 송수신을 위한 socket
- 동작 과정
1) socket() : 소켓 생성
2) bind() : IP, Port 번호 할당
3) listen() : 연결 대기 (큐 생성)
4) accept() : 연결 요청 수락
5) write() & read() : 송수신
6) close() : 소켓 소멸
3. Client
- 동작 과정
1) socket() : 소켓 생성
2) connect() : 연결 요청
3) read() & write() : 송수신
4) close() : 소켓 소멸
'CS > 네트워크' 카테고리의 다른 글
DNS 서버 (0) | 2021.09.22 |
---|---|
Network Layer (0) | 2021.09.22 |
TCP/IP 프로토콜 (0) | 2021.09.22 |
IP주소와 Port 번호 (0) | 2021.09.22 |