728x90

네트워크

여러 대의 컴퓨터가 서로 통신하기 위해 연결되면 그게 바로 네트워크!

 

1) 물리 계층 

 

(무선 혹은 유선으로)연결되어 있는 A컴퓨터에서 B컴퓨터데이터를 보낸다고 하자.

 

 

 

이때, 데이터를 전기적신호 or 광신호로 바꾸어 B컴퓨터에 전달하는 물리적 기술과 장비들을 다루는 영역1계층 또는 물리 계층이라고 한다. 

 

 

2) 데이터 링크 계층

 

이렇게 다수의 컴퓨터와 연결이 되면, 서로 다른 컴퓨터들을 구분할 필요가 있다

 

그래서 모든 통신 기기들은 서로 구분할 수 있는, 겹치지 않는, 유일한 번호MAC(Media Access Control)주소를 가진다. 

 

그래서 각 기기들이 MAC 주소로 구분되고, 서로 통신할 수 있게 된다

 

그런데, 네트워크로 연결된 컴퓨터들이 많아질수록 선이 엄청 많이 필요하게 된다. 

컴퓨터가 2대라면 단 하나의 선만 필요하지만, 3대라면 3개, 4대라면 6개,,,,,,

이러한 선의 낭비를 줄이기 위해 '허브, 스위치'라는 장치가 등장했다. 

 

 

하지만 또 이렇게 스위치로 모든 컴퓨터 선들이 연결되니, 각 컴퓨터들의 데이터들이 한 곳으로 모여 충돌하면서 여러 문제가 발생한다. (ex) 순서는 어떻게 할지, 동시에 들어오는 데이터들의 충돌은 어떻게 할지 등)

 

그래서 데이터 링크 계층, 2계층에서는 이런 충돌을 피하고 어떻게 효율적으로 데이터들을 연결하여 통신을 원활하게 할지에 대한 기술과 기계들을 다루는 영역이다. 

 

3) 네트워크 계층

 

위와 같이 스위치로 연결된 ABCD 네트워크와 또 다른 스위치로 연결된 A'B'C'D' 네트워크연결하면 ABCDA'B'C'D'라는 또 하나의 네트워크가 됩니다.  

 

여기까지만 보면 괜찮지만, '같은 네트워크에 속한 모든 기기'는 모르는 컴퓨터의 이름(주소)를 알아내기 위해, 연결된(같은 네트워크에 속한) 모든(broad) 컴퓨터들에게 'x 컴퓨터 주소가 뭐야?'라는 질문을 던지는(cast), 브로드캐스팅(Broadcasting, 방송)을 합니다. 

 

그런데, 컴퓨터든 스위치든 일정 시간이 지나면 '브로드캐스팅'으로 알아낸 주소를 까먹습니다. 그래서 일정 시간마다 다시 브로드 캐스팅을 하면서 트래픽이 계속 발생하게 됩니다. 

 

전 세계 모든 컴퓨터들을 2계층의 스위치로만 구성한다면, 전 세계 모든 기기들이 같은 네트워크에 속하게 될 것이고, 같은 네트워크에 속했기 때문에 모든 컴퓨터들이 특정시간마다 브로드캐스팅을 보내면, 엄청난 트래픽에 의해 네트워크가 마비될 것입니다. 

 

그러므로 네트워크를 나눠야 합니다. 이때, 네트워크를 나눠주는 기기가 바로 라우터입니다.

 

아래와 같이 네트워크와 네트워크 사이에 끼어, 네트워크를 구분하고 또 연결해줍니다. 

 

 

또한 라우터는 다른 네트워크까지의 최단 거리를 계산해서, 목적지 네트워크까지의 최단 거리를 알고 있습니다. 

 

 

위처럼 A네트워크에 속한 컴퓨터가 F네트워크에 속한 컴퓨터와 통신하려고 할 때, 1번 노랑색 길은 라우터 1개를 거쳐가고, 2번 핑크색 길은 라우터 2개를 거쳐간다. 

 

라우터다른 네트워크까지의 최단 거리를 계산할 수 있으므로, 2번 길이 아닌 1번 길로 보내는 것이 빠르다고 판단하고, 1번 방향으로 A 네트워크의 컴퓨터 패킷(네트워크 계층에서 데이터의 단위)을 F 네트워크로 보낸다는 것이다. 

 

이런 식으로 수많은 라우터와 라우터들이 연결되어 전 세계 모든 네트워크가 연결된 것이 바로 인터네트워크(Internetwork), 인터넷이다. 

 

그런데, 라우터가 어떻게 길을 찾고, 각각의 네트워크를 구분할까? 

 

현실에서 주소를 통해 길을 찾는 것처럼, 인터넷에서의 구분을 위한 주소가 바로 IP 주소이다. 

인터넷에선 IP 주소로 모든 것이 구분되고 통신을 하기에, 인터넷을 사용하려면 반드시 IP주소를 할당받아야 한다. 

 

이렇게 '네트워크와 네트워크' 사이의 통신에서 사용되는 기술과 장비를 다루는 영역네트워크 계층, 3계층이다. 

 

그리고, 당연히 네트워크 계층에도 다른 네트워크와의 통신에서 데이터의 충돌, 혼선을 빚지 않게 해주고, 목적지까지 데이터를 잘 전달하게 해 주는 기술이 당연히 있다. 

 

컴퓨터 공학에서 이런 기술들을 주로 '프로토콜'이라고 한다. 

 

네트워크 계층인 인터넷에서 네트워크들을 구분하고, 데이터를 효율적인 형태인 '패킷'으로 나눠주는 기술을 'IP(Internet Protocol)'라고 한다. 

 

4) 전송 계층

 

네트워크를 구분하고, 데이터를 패킷으로 만드는 것은 IP로 해결이 됐지만, 수~많은 라우터들이 연결되어 있는 인터넷은 특정 네트워크까지 패킷을 보내는 방법에 엄청나게 많은 경우의 수가 있다. 

 

그러니까 패킷들이 목적지까지 나눠져서 가다가 중간에 특정 길에 문제가 생겨 끊기면 패킷이 소실되는 일도 발생한다는 것이다. 

 

그래서 기기 종류와 상관없이 네트워크에 접속한 모든 기기들에게 데이터를 안전하게 전송할 수 있는 기술이 개발되었다. 그게 바로 TCP와 UDP

 

이렇게 데이터를 어떻게 목적지까지 전송할지에 대한 기술과 장비를 다루는 영역전송 계층, 4계층이다. 

 

TCP와 UDP 및 나머지 5, 6, 7계층에 대해서도 알고 싶다면 아래 포스팅을 참고해주세요.

https://dolphinsarah.tistory.com/36

 

[네트워크] OSI 7계층(TCP/IP, TCP와 UDP 비교)

OSI 참조 모델(Open Systems Interconnection reference model) 우리가 흔히 OSI 7계층이라고 부르는 것은 사실, OSI 참조 모델이다. 국제표준화기구(ISO)에서 개발한 네트워크 모델이고, 네트워크 동작을 7계층(l..

dolphinsarah.tistory.com

 

728x90
728x90

 

OSI 참조 모델(Open Systems Interconnection reference model)

 

우리가 흔히 OSI 7계층이라고 부르는 것은 사실, OSI 참조 모델이다. 

 

국제표준화기구(ISO)에서 개발한 네트워크 모델이고, 네트워크 동작을 7계층(layer)으로 구성하여 설명하고 있다. 

 

OSI 참조 모델이 필요한 이유

OSI 참조 모델은 어떤 필요에 의해 만들어졌을까?

 

실제로 많은 물건들은 참조 모델을 바탕으로 만들어지고, 유지보수된다. 

 

예를 들어, 자동차에 참조 모델이 없다면, 자동차의 타이어나 엔진이 고장났을 때 자동차를 아예 바꿔야 하는 것이다.   

 

자동차 회사에서 자동차의 모든 것을 만드는 게 아니기 때문에 자동차 회사와 타이어 회사, 엔진 회사와의 규칙, 약속이 있어야, 자동차의 특정 부분이 고장나더라도 해당 부분만 수리해서 자동차를 계속 이용할 수 있는 것이다. 

 

즉, 참조 모델은 어떤 제품을 만들 때 없어서는 안될 규격이자 규칙, 약속과 같은 것이다. 

 

컴퓨팅 장치나 네트워킹 장치를 만들고 유지보수 할 때에도 참조 모델이 꼭 필요하고,

 

모든 통신장치들은 OSI 참조 모델(네트워크 모델)을 참고하여 만들어지고 유지보수된다.  

 

OSI 참조 모델을 통해 통신이 일어나는 과정을 단계별로 파악할 수 있고, 네트워크에서 트래픽의 흐름을 볼 수 있다. 

 

 

일반적인 네트워크의 계층 구조

OSI 참조 모델(네트워크 모델)을 알아보기 전에, 일반적인 네트워크의 계층 구조는 어떻게 되어있는지 확인해보자. 

 

일반적인 네트워크 계층 구조

 

일반적인 네트워크 계층 구조는 크게 LAN, 인터넷, 응용 프로그램으로 이루어져 있다. 

 

LAN

  • 유선 혹은 무선으로 기기를 연결하는 계층 
  • 기기 간 데이터 전송 시 속도 제어 및 오류를 검출하는 계층 

 

인터넷

  • 네트워크와 네트워크를 연결하는 계층 
  • 네트워크 간 데이터 전송 시 속도 제어 및 오류를 검출하는 계층

 

응용프로그램

  • 계층의 최상단, 사용자가 사용하는 프로그램이 있는 계층 
  • ex) 웹, 채팅, 게임

 

OSI 참조 모델

그럼 이제 국제 표준화 기구에서 개발한 네트워크 모델OSI 참조 모델에 대해 알아보자.

 

OSI 7계층

 

위의 일반적인 네트워크 계층에서 보았던 것도 보인다.

(계층 1, 2는 LAN, 계층 3,4는 인터넷, 계층 7은 응용프로그램)

 

그럼 이제 하나하나 OSI 참조 모델 7계층에 대해 세세하게 알아보도록 하자. 

 

물리 계층(Physical Layer)

네트워크에서 유선 혹은 무선으로 인접한 기기 간 연결을 담당하며, 네트워크 연결선의 특징, 무선 연결 방식의 특징을 규정한다. 

 

  • 신호: 아날로그 신호를 사용하는 네트워크 vs 디지털 신호를 사용하는 네트워크
  • 데이터를 전송하는 매체: 유선 vs 무선 

 

물리 계층에서 사용되는 통신 단위는 비트(0과 1)이다. 즉, 전기적으로 on/off 상태. 

 

이 계층에서는 단지 데이터를 전달하는 기능만 수행하고, 에러에는 관여하지 않는다. 

 

데이터 링크 계층(DataLink Layer)

인접한 기기 간에 오류 없는 데이터를 전송할 수 있도록 해주고, 물리 계층을 통해 데이터를 주고 받을 때 얼마나 빠른 속도로 데이터를 주고받을지, 받은 데이터에 오류가 없는지 등을 살펴본다.  

 

즉, 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다. 

 

  • IP 주소 - 인터넷으로 연결된 각 컴퓨터마다 유일하게 부여된 주소, 네트워크 계층에서 사용함 
  • MAC 주소 - IP 주소 외에도 데이터 링크 계층에서 사용하는 주소, 제조사에서 통신 장비에 부여하는 고유한 주소, 물리적 주소라고도 함(데이터가 LAN에서만 움직일 때는 MAC 주소를 사용하고, LAN을 빠져나와 인터넷을 돌아다닐 때는 IP 주소를 사용)
  • CRC 코드 - 오류 탐색 코드

데이터 링크 계층에서의 데이터 단위는 프레임이다. 

 

네트워크 계층(Network Layer)

LAN들을 연결하여 인터넷을 구성하는 계층이다.

 

LAN들 사이에서 데이터를 어떻게 주고 받을지 결정하며, 어떤 경로로 데이터를 보낼지도 결정한다. 

(경로를 선택하고, 경로에 따라 패킷을 전달해줌

 

  • 패킷 - 네트워크 계층에서 데이터의 단위
  • 라우팅 - 어떤 경로로 패킷을 보낼지 결정하는 것 (경로배정), 네트워크 계층에서 가장 중요한 기능(데이터를 목적지까지 가장 안전하고 빠르게 전달해야 함)
  • 라우터 - LAN과 LAN을 연결하는 기계, 데이터를 한쪽 네트워크에서 다른 쪽 네트워크로 전달하는 기기
  • IP(Internet Protocol) - 인터넷에서 패킷 전송을 담당하는 프로토콜, 주요 역할은 라우팅(뒤바뀌거나 사라진 패킷을 원래대로 맞추어주는 일을 전송 계층에 있는 TCP가 수행, 인터넷을 사용할 때 TCP/IP를 같이 사용)
  • IP 주소 - 통신을 하려면 주소가 필요, 인터넷으로 연결된 각 컴퓨터마다 유일하게 부여된 주소, 이 주소는 라우팅할 때 가장 중요
  • 도메인 이름 - 인터넷에서 통신하려면 IP 주소가 꼭 필요하지만 사람이 외우기 힘드므로, IP 주소에 이름을 붙여주는 것 
  • DNS(Domain Name Service) - 도메인 이름을 IP 주소로 바꾸어주는 것, 사용자가 웹 브라우저에 도메인 이름을 쓰면 웹 브라우저는 DNS 서버(도메인 이름과 IP 주소를 모아 놓은 컴퓨터)에 접속하여 IP 주소를 받아옴

 

전송 계층(Transport Layer)

전송 계층을 통해 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있다

 

출발지에서 목적지 컴퓨터끼리 데이터를 주고받을 때 오류를 점검하고 보정하며, 오류가 있으면 재전송 요청을 한다. 

 

네트워크 계층의 'IP'만으로도 데이터를 목적지까지 전달할 수는 있지만, 중간에 데이터가 손상되거나 유실되었을 때의 방법이 없다.

 

데이터의 확실한 전송을 위해 전송계층에서 'IP'와 (TCP or UDP)를 함께 사용하면 데이터가 중간에 손상되거나 유실되었을 때 다시 보낼 수 있다

 

◆ TCP(Transmission Control Protocol)

정확한 데이터를 전송하는 것이 목적이다. ex) 택배원이 직접 우리 집에 찾아와 내 사인을 받고 택배물을 나에게 전달해주는 것

 

3-way-handsahke

: 'TCP' 통신은 데이터를 전송하기 전에 3가지의 확인 과정을 거친 후에 데이터를 전송한다. 택배원이 우리집(IP)으로 찾아와 문을 두들기고(요청) 내가 (대답) 후, 누구냐고 물어보면(요청), 택배원이 '택배입니다' (대답)하면서 3번 서로의 안전을 확인한 후, 택배(데이터)를 받게 된다. 3-way-handshake로 인해 시간은 다소 걸리지만, 데이터 복구 기능이 있어 데이터를 안전하게 받을 수 있다는 장점이 있다. 

 

◆ UDP(User Datagram Protocol)

정확한 데이터 배달보다는 빠른 전송이 목적이다.  ex) 택배원이 모든 택배물을 경비실에 두고 가는 것

 

TCP와는 달리 UDP스위치(라우터)의 브로드캐스트 주소(경비실)에 그냥 데이터(택배)를 보내버린다. 그러면 컴퓨터는 UDP 브로드캐스트를 받아본 다음 자신에게 온 것이면 받고, 아니면 무시한다. 이런 경우 실제와 마찬가지고, 택배(데이터)가 유실되거나 도둑맞아도 택배원은 책임이 없다. 

 

UDP를 사용하면, 3- way-handshake가 필요한 TCP와 비교해 매우매우 빠른 통신이 가능하지만, 데이터가 제대로 목적지에 전달되었는지 보장할 수 없어 안전성이 낮다

 

신뢰성과 안정성이 중요한 작업이라면 TCP 통신을 하고, 동영상과 같이 빠른 데이터의 전송이 필요한 작업이라면 UDP 통신을 사용한다. 

 

◆ 포트 번호(Port)

더 효율적인 통신을 위해 사용하는 '전송 계층'의 기술은 포트 번호(Port)이다. 

 

포트 번호는 컴퓨터의 어느 애플리케이션(응용프로그램)에게 데이터를 전달할지 알려주는 번호이다. 

IP 주소아파트의 동번호라면, Port 번호아파트의 호수라고 생각하면 된다. 

 

즉, 특정 컴퓨터의 어떤 애플리케이션에게 데이터를 전달하라고 추가적으로 적는 번호가 바로 포트 번호인 것이다. 

 

이렇게 전송 계층에서 목적지 애플리케이션 '포트번호'와 '데이터들의 순서'를 적고 'TCP or UDP'를 써서 만든 데이터의 형태를 세그먼트라고 한다. 

 

세션 계층(Session Layer) 

'네트워크 계층의 IP'를 통해 컴퓨터를 찾아가고, '전송 계층의 포트 번호'를 이용해 컴퓨터의 애플리케이션을 찾아가고, '전송 계층의 TCP or UDP'로 안전한/빠른 연결을 확인하였다.  

 

그러고 나면 서버의 애플리케이션과 클라이언트의 애플리케이션 사이에 데이터 전송을 위한 논리적인 연결통로가 생긴다. 

 

이 때, 실시간으로 데이터를 주고 받기 위한 두 컴퓨터의 논리적 연결, 만남을 세션(Session)이라 하고, 이런 세션을 만들고, 유지, 종료할 때 사용되는 기술과 장비들을 '세션 계층'이라고 한다. 

 

표현 계층(Presentation Layer) 

세션이 만들어지고, 데이터를 전송하려고 하는데, 각 애플리케이션마다 사용하는 데이터 형태가 다르다

 

그래서 세션을 통해 넘어오는 데이터들을 애플리케이션에서 필요한 형태로 변환(데이터를 어떻게 변환할지 다루는 계층)해 애플리케이션에서 표현하는 계층이기 때문에 '표현 계층'이라고 한다. 

 

데이터를 암호화하는 계층이고, 웹에서 흐르는 데이터를 암호화하려면 반드시 표현 계층을 거쳐야 한다. 

 

응용 계층(Application Layer)

우리가 사용하는 사용자 인터페이스를 제공하는 응용 프로그램들의 상호작용을 다루는 계층이다. 

 

세상에 정말 수없이 많은 응용프로그램이 있듯, 각 응용 프로그램에 사용하는 수많은 프로토콜이 있다

 

대표적으로 인터넷상에서 문자(Hyper Text) 데이터를 다루는 프로토콜 HTTP, 파일을 주고 받을 때 사용하는 프로토콜 FTP, 도메인 네임서버를 찾을 때 사용하는 프로토콜 DNS, SSH 연결을 할 때 사용하는 프로토콜 SSH 등이 있다. 

 

 

 

 

728x90

+ Recent posts