본문 바로가기
cs/컴퓨터 네트워크

OSI 7계층, TCP/IP 5계층

by 장인이 2023. 11. 9.

0. 개요

 이번 게시물에서는 기기간에 인터넷으로 정보를 전달하는 방법을 이해하기 위한 첫 번째 단계인 OSI 7계층과 현재 표준으로 사용하고 있는 TCP/IP 5계층에 대해 정리해 볼 것이다.

 

 

1. Circuit Switching Network, Packet Switching Network

 OSI Model을 소개하기에 앞서, 중앙 제어 전달 방식과 목적지 주소 전달 방식에 대해 알아보자.

- Circuit Switiching Network (중앙 제어 전달 방식)

 Circuit Switching은 A에서 B로 데이터를 보낼 경우, 하나의 회선을 부여한다. 해당 통신이 진행되는 동안, 이 회선은 A, B를 제외하고 다른 곳에서 접근이 불가능해진다.

 데이터가 분리되지 않으며, 다른 곳을 경유하지 않기 때문에 안전하고 빠른 방법이다. 하지만 하나의 통신 당 하나의 회선을 부여하므로, 통신량이 늘어날수록 비용이 증가한다는 치명적인 단점을 지니고 있다.

- Packet Switching Network (목적지 주소 전달 방식)

 데이터를 패킷 단위로 전달하는 방식이다. 현재 인터넷이 사용하고 있는 방식으로, 데이터를 패킷 단위로 쪼개서 보내고, 받는 형식이다. 또한 하나의 연결마다 하나의 회선을 부여하는 것이 아니다. 여러대의 컴퓨터를 라우터에 연결하고, 라우터와 다른 라우터를 연결하여 효율적인 연결을 만든다. 따라서 쪼개진 패킷들이 같은 라우터로, 순서대로 보내질거라는 보장이 없다.

 해당 방식은 통신량이 늘어나는 것에 비하여, Circuit Switching에 비해 효율적인 정보 전달이 가능하다. 하지만, 데이터를 쪼개고, 받고, 다시 재결합하는 과정에서 데이터의 손실이 발생할 수 있는 위험성을 지니고 있다. 따라서 데이터 보존을 위해 여러 protocal(약속)을 사용한다.

 

 

2. OSI 7계층, TCP/IP 5계층

- OSI 7계층

  국제 기구 ISO(Integernational Standards Organization)에서 표준화한 모델이다. 네트워크 통신시 여러 충돌을 방지하기 위해 OSI(Open Systems Interconnection) model을 디자인하였으며, 총 7개의 계층으로 나누어져 있다.

- TCP/IP 5계층

 현재 산업 표준 네트워크 모델은 TCP/IP 모델이다. 해당 모델이 OSI 모델보다 먼저 사용되었으며, 기존에 4계층에서 인터넷의 개발로 인하여 5계층으로 확장되었다. OSI 7계층 중 Session Layer, Presentation Layer, Application Layer가 Application Layer로 합쳐졌다고 생각하면 편하다.

- 계층 분리의 이유

 네트워크 통신 과정을 단계별로 분리한 이유는, 인터넷이 Packet Switching 방식을 채택했기 때문이다. 패킷 단위의 데이터를 안전하게 전달하기 위해 필요한 정보의 양이 많아졌으며, 이를 위해 계층별로 역할을 분리해서 독립적으로 기능을 수행하고 계층간의 통신을 통해 전체 통신 프로세스를 가능하게 한다.

 

1) Physical Layer (물리 계층)

 데이터를 통신하기 위해서는, 0과 1의 데이터를 주고받아야 한다. 따라서 0과 1의 나열을 아날로그 신호로 인코딩/디코딩하여 데이터를 주고받는 역할을 Physical Layer에서 담당한다. 데이터의 물리적인 이동은 모두 여기서 일어난다고 생각하면 된다.

 

2) Data Link Layer (데이터 링크 계층)

 위에서 언급했듯이 인터넷은 Packet Switching 방법을 사용하였다. 따라서 여러개의 컴퓨터를 라우터에 연결, 그리고 라우터와 다른 라우터의 연결을 계속 반복하여 효율적인 연결을 만든다.

 

- hop-to-hop delivery

 이때, Data Link Layer에서는 출발, 도착하는 라우터의 MAC 주소를 저장한다. 따라서 라우터를 거쳐갈때마다 주소가 바뀌게 된다. 

 

- MAC 주소

 MAC 주소 혹은 번호는 제조사에서 부여하는 번호이다. 쉽게 바꿀 수 있는 IP주소와 다르게, 개인이 바꾸기 어려운 값이다. hop-to-hop delivery시 출발지와 목적지를 구분하기 위해 주로 사용된다.

 

- Routing Table

 데이터를 A에서 B로 보내고 싶다고 생각해보자. 하지만 A와 B 사이에는 수많은 라우터들이 있는데, 어느 라우터로 가야 B로 갈 수 있는지 어떻게 판단할까? 이 정보를 Routing Table에서 제공해준다. Routing Table에는 Destination와 Near 정보가 저장되어 있다. 즉, B의 IP 주소를 통해 지금 이동해야 하는 라우터의 IP 주소를 알 수 있다.

 

- ARP Table

 Routing Table을 통해 현재 이동해야 하는 IP주소를 알아내었다. 하지만, hop-to-hop delivery는 MAC 주소가 필요하다! 따라서 ARP Table을 통해 IP주소를 MAC 주소로 변환시킨다. ARP Table에는 IP와 MAC주소가 나열되어 있으며, IP 주소를 MAC 주소로 변환시키는 것을 ARP라고 한다.

 

 주로 48bit(6byte) physical address이며, 12개의 16진수 형식으로 전달된다. 이떄, 1byte마다 colon으로 나누어져 있다.

ex) 97:01:02:01:2C:4B

 

 

3) Network Layer (네트워크 계층)

 Data Link Layer에서 라우터간의 이동을 담당했다면, Network Layer에서는 데이터의 출발지와 목적지를 저장한다.

 

- host-to-host delivery

 데이터의 출발지와 목적지를 알기 위해 IP 주소를 사용한다. 이를 IP 패킷에 감싸, 전달하게 된다. 따라서 hop-to-hop delivery와 다르게, 데이터 출발, 도착까지 IP Address의 값은 바뀌지 않고 유지된다.

 

- IP Address

 Host의 논리적인 주소로, 하나의 IP Address는 전 세계 네트워크에서 유일한 값이다.

 

 

4) Transport Layer (전송 계층)

 우리가 컴퓨터를 할때, 한 번에 하나의 동작만 하지는 않는다. 노래를 들으면서, 메신저를 사용하고, 동시에 영상을 시청할하는 등 동시에 여러 동작을 한번에 진행한다. 이렇게 컴퓨터에 여러 프로세스가 전송되어 온 경우, 출발 도착 주소만 가지고는 해당 데이터가 어디에서 온지 알 방법이 없다! 따라서 프로세스를 포트 번호를 통해 구분하며, 이를 패킷에 감싸서 전달하게 된다.

 이를 TCP/UDP를 통해 구현하며, 이에 대한 자세한 내용은 아래 포스트를 참고 바란다.

(작성중)

 

- Port Address

 포트 번호는 16bit에 10진수로 지정된다. 주로 1024보다 큰 값이 지정된다. (그 이전 값들은 이미 기본 기능에서 지정되어 있는 포트일 확률이 크기 때문)

 

 

5) Application Layer (응용 계층)

 실질적인 프로그램 구현체와 사용자 인터페이스를 의미한다. 필요한 데이터를 저장하는 곳으로, HTTP, FTP, SSH, SMTP 등등 다양한 프로토콜이 존재한다.

 

 실제로 데이터를 패킷에 감싸는 경우에는 5, 4, 3, 2, 1 순서대로 진행되게 된다. 반대로 패킷에서 데이터를 꺼낼때는, 1, 2, 3, 4, 5 순서대로 데이터를 꺼낸다.

'cs > 컴퓨터 네트워크' 카테고리의 다른 글

HTTP 캐시와 조건부 요청, 프록시 캐시  (0) 2023.01.13
HTTP 쿠키  (0) 2023.01.13
HTTP 헤더  (0) 2023.01.13
HTTP 상태코드  (0) 2023.01.12
HTTP API 설계하는 법  (0) 2023.01.12

댓글