CS/Network

[네트워크] 네트워크 개념과 OSI 7계층

별토끼. 2018. 4. 21. 17:42
반응형

[네트워크] 네트워크 개념과 OSI 7계층



네트워크와 네트워킹은 무엇일까?

네트워크란 동일한 프로토콜을 사용하는 디바이스들의 집합을 말합니다. 이 디바이스들은 통신을 위해 모두 연결되어 있습니다. 물리적으로 연결된다고 끝난 것이 아니라 디바이스들 간 약속(규약)을 만들어놔야 합니다.

네트워킹은 이렇게 연결된 디바이스들 간의 데이터를 송수신하는 과정을 말합니다. 이 때, 데이터란 0과 1로 이루어진 데이터들을 말합니다. 이 때 보내는 쪽이나 받는 쪽은 주고 받는 데이터에 대한 이해가 필요하고 그 약속(규약)이 프로토콜입니다.

네트워크 통신은 우리가 자주 이용하는 특정 사이트를 예로 들어보겠습니다.

웹 브라우저를 클릭하면 브라우저는 웹 서버에 "google 페이지 데이터 줘!" 라고 요청을 합니다. 이러한 요청, 그리고 서버에서 브라우저로 데이터를 응답하는 데이터는 0과 1로 이루어진 디지털 데이터 입니다. 

이 디지털 데이터는 여러 기기들이 역할을 분담해 작은 덩어리로 운반합니다. 이 작은 덩어리는 패킷이라고 부릅니다. 패킷의 맨 앞은 어디로 가야할지 등의 제어 정보가 기록되어 있어 이것을 기준으로 목적지까지 이동합니다. 이러한 과정을 네트워크 통신이라고 합니다.


OSI 7계층

OSI 7계층의 기본적인 개념은 시험에도 자주 등장하는 개념입니다. (중요하기 때문이겠죠?) 개발자는 최상위단 네트워크와 관련된 프로토콜에 대해서는 꼭 알아놔야 합니다.

 * Application 계층 

최종 수요자와 컴퓨터가 통신하는 공간을 말합니다. 다양한 범주의 정보처리 기능(컴퓨팅 작업)을 합니다.

- 주요 기능

 여러 하위 통신 프로토콜 개체에 대하여 사용 관점의 사용자 인터페이스를 제공합니다.

- Application계층 프로세스 간의 통신

 Application계층 프로세스들 사이의 통신은 표현계층이 제공하는 서비스를 이용합니다. 하단을 참고해주세요

- Application 계층의 주요 프로토콜

 1. Telnet : 원격 컴퓨터 접근 프로토콜 (Port 23)

 2. FTP : 파일 전송 표준 프로토콜 (Port 21: 접속관리, Port 20:전송)

 3. POP3 (Post Office Protocol Version 3) : 이메일 수신 프로토콜(Port 110)

 4. IMAP (Internet Message Access Protocol) :

로컬 컴퓨터에서 이메일 접근을 위한 프로토콜(받을 때 주로 사용)(Port 143)

 5. SMTP (Simple Mail Transfer Protocol)

메일 송수신 프로토콜(보낼 때 주로 사용)(Port 25)

 6. HTTP (HyperText Transfer Protocol) ★

WWW 환경에서 유용한 문서 전송 프로토콜(Port 80)

Stateless 프로토콜 : 클라이언트가 서버로 접속하여 정보를 요청하면 서버는 적절한 응답 후 접속 종료

 * Presentation 계층 

네트워크 상의 여러 시스템들의 다른 데이터 표현 방식을 하나의 통일된 구문 형식으로 변환시키는 기능을 수행하는 계층을 말합니다. 

- 주요 기능

 Application 계층의 다양한 표현 양식을 공통의 형식으로 변환하고 암호화, 압축, 코드 변환(상이한 형태의 코드 변환, 파일변환, 문서 축소화), 가상 터미널 규약(라인과 스크린의 길이, 라인의 종료 약속, 페이지 모드, 커서의 특성 등 다르므로 가상적인 터미널을 만듬)

 * Transport 계층

Application 계층에서 전달한 데이터를 목적지 프로세스까지 전달하는 역할을 하는 프로토콜입니다. 가장 핵심적인 계층이며 또한 가장 복잡한 계층입니다. 소프트웨어적인 상위 3개 계층과 하드웨어적인 하위 3개 계층 사이에서 중간적인 성격을 띕니다. 이 계층은 개발자가 직접 컨트롤하는 부분이 아닌 OS가 컨트롤하는 부분입니다. 대표적인 프로토콜 종류로 TCP와 UDP가 있습니다.

- 주요 기능

 End-to-End 전송 : 네트워크가 아닌 호스트 내에서 구동된 프로세스 사이의 연결을 확립합니다. 두 호스트 간의 정보전달보다는 주로 프로세스 간의 통신을 하도록 하는 계층입니다. 

 투명한 전송 : Session, Transport, Network 계층 간에 내용이 바뀜없이 투명하게 전송합니다. 즉, 경로선택이나 중계 기능에 관여하지 않고 양 단 간의 데이터의 투명한 양방향 전송 기능을 제공합니다.

 신뢰적 전송 지원 : 어떤 Network가 어떻게 연결되었든 관계없이 정보를 정확히 상대 단말기에 전달합니다.

 다중화/역다중화 지원 : 동시에 여러 개의 논리 연결을 가능하게 합니다.

 Delay 보상 : 지연에 따른 왜곡 및 대역폭 부족에 대한 일부를 보상합니다.

- Transport 계층의 복잡성

 Network계층으로부터 얻은 서비스의 형태에 따라 Transport계층 프로토콜의 크기와 복잡성이 결정됩니다.

- 전송 계층 프로토콜

- TCP ?

Transport 계층의 신뢰적 전송을 위한 프로토콜입니다. 연결지향 프로토콜로 전화와 유사합니다.데이터 송수신 전에 소켓을 통한 연결이 필요하고 소켓/포트로 동시 연결을 지원합니다. 또한 네트워크 상황에 따라 패킷 전송 속도를 조절하는 유연성을 갖고 있습니다. 모든 데이터가 안전하게 주고 받아야하는 애플리케이션에서 사용합니다.

- UDP ?

Transport 계층의 신뢰성 없는 전송 프로토콜입니다. 비연결지향 프로토콜로 편지 배달과 유사합니다. 음악, 동영상 스트리밍, 멀티미디어 데이터 전송 등에 적합하고 TCP보다 유연성이 떨어지는 프로토콜이지만 가볍습니다.

실제 네트워크 프로그래밍에서 개발자가 프로그램 종류에 따라 선택할 수 있습니다.

* Network 계층

 두 원격 시스템 간 연결성과 경로 선택을 제공합니다. 이 계층의 프로토콜은 IP(Internet Protocol)입니다. 그래서 일반적으로 TCP/IP 통신이라 함은 트랜스포트 계층과 네트워크 계층의 통신을 아우르는 말이죠.

- IP ? 

 네트워크 계층에서 데이터를 효율적으로 전송하도록 하게 합니다. 호스트에 대한 주소 체계와 패킷 라우팅[각주:1]을 담당합니다. IP주소는 32비트의 정보로 목적지 정보를 보는 용도입니다.


* Data Link 계층

 네트워크 계층으로부터의 메세지를 비트로 변환합니다. (맥 레이어)

* Physical 계층 

 데이터 패킷을 전기 신호나 광신호로 바꾸어 송수신합니다. (물리, 전기적 신호로 변환)


소켓과 포트

 * 소켓

애플리케이션에서 네트워크를 위한 통신 채널을 말합니다. 즉, 애플리케이션과 트랜스포트 레이어 사이의 매개층이라고 할 수 있죠.

 * 포트

16비트 값으로 애플리케이션의 소켓 식별을 위해 사용됩니다.(곧, 프로세스를 식별한다는 말과 동일) 1~1023까지 IANA에서 관리하고 1~511 까지 FTP, Telnet 등 표준 TCP/IP 애플리케이션 용입니다. 512~1023은 운영체제를 위한 예약되어있고 일반 애플리케이션에서는 1024 이상의 포트를 사용합니다.



[참고] http://12bme.tistory.com/64, http://www.ktword.co.kr/abbr_view.php?m_temp1=361

  1. 라우팅은 어떤 네트워크 안에서 통신 데이터를 보낼 경우를 선택하는 과정을 말합니다. https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9A%B0%ED%8C%85 [본문으로]
반응형