본문 바로가기

통신

네트워크 개념 5 : TCP/IP 데이터송수신 원리(세상 제일 쉬움)

 

미리보기 

TCP/IP 송수신순서 : 송신자(4-3-2-1계층, 캡슐화), 수신자(1-2-3-4계층, 역캡슐화)

* 역캡슐화 : 헤더(MAC주소, IP주소, PORT번호 순서대로 확인후 제거)

 

호스트(Host) : 데이터 송신자 or 수신자 > ex : 송신 호스트, 수신 호스트

노드(Node) : 노드(호스트), 중간노드(라우터, 무선AP 등 네트워크장비)

데이터경로설정 : 회선교환, 패킷교환 

* 회선교환(Circuit Switching) : 데이터전송 Through 지정된 경로 > 한계 : 대처x if 지정경로 트랙픽 증가 

* 패킷교환(Packet Switching) : 데이터 묶음분할 trhough 다양한 경로 > 원리 : When 패킷 수신 시, 캡슐화(데이터조립) 진행 based on 헤더정보  

 

1. TCP/IP 데이터송수신 원리

 

  앞서, TCP/IP는 데이터송수신을 위한 프로토콜이며 총4개의 계층으로 구성되어있다고 했었죠. '네트워크 인터페이스계층-인터넷계층-전송계층-응용계층'이었어요. 각 계층이 있는 것은 '순서'가 있기 때문이에요. 예를 들면, 데이터를 보내려하는 송신자는 어떤 서비스영역을 보낼지에 대한 프로토콜인 '응용계층'을 먼저 정합니다. 그리고, '전송계층-인터넷계층-네트워크 인터페이스계층'으로 순서가 이루어집니다. 차곡차곡 쌓기 때문에 이러한 작업을 '캡슐화'라고 불러요. 

 

 

  반면, 데이터를 받는 수신자 입장에서는 캡슐의 마지막인 '네트워크 인터페이스계층'부터 해체를 해야해요. 가장 마지막에 쌓인 캡슐이기 때문이죠. 정리해보면 다음과 같아요. 송신자 입장에서는 4-3-2-1계층 순서대로 캡슐화하여 데이터를 보냅니다. 수신자 입장에서는 역순인 1-2-3-4계층 순서대로 데이터를 해제하죠. 이러한 해제작업을 '역캡슐화'라고 부르기도 해요. 

 

 

 

정리 

TCP/IP 송수신순서 : 송신자(4-3-2-1계층, 캡슐화), 수신자(1-2-3-4계층, 역캡슐화)

* 역캡슐화 : 헤더(MAC주소, IP주소, PORT번호 순서대로 확인후 제거)

 

 

2. 호스트(Host), 노드(Node)

 

  네트워크란 컴퓨터끼리의 데이터송수신이라고 맨 처음 배웠죠. 컴퓨터끼리 통신하기 위해서는 컴퓨터, 전송매체(무선, 유선), 네트워크 장비가 필요하다고 했죠. 여기서 데이터를 보내는 측은 송신자, 받는 측은 수신자라고 하는데요. 이들을 '호스트(Host)'라고 부르기도 해요. 호스트란 '본인', '주인'이라는 뜻이죠. 즉, 데이터 송수신을 하기 위해서는 '주체'가 필요한데 이들을 '호스트'라고 부릅니다. 

 

  예를 들면, 데이터센터에서 개인PC로 데이터를 보내려고 한다고 해보죠. 여기서, 보내는 입장은 서버입니다. 이를 '서버호스트'라고 부를 수 있어요. 데이터를 받는 입장은 클라이언트, 즉 '클라이언트 호스트'라고 부르는데요. 다만, 호스트라는 이름은 꼭 붙이지는 않아요. 예를 들면, 그냥 "서버에서 클라이언트로 데이터를 보낸다"라고 표현하기도 하죠.

 

 

 

정리 

호스트(Host) : 데이터 송신자 or 수신자 > ex : 송신 호스트, 수신 호스트

 

  여기서, 호스트끼리 데이터를 주고받을 때, 네트워크 장비가 필요하죠. 가장 대표적인 것은 LAN끼리 네트워크를 가능케하는 '라우터(Router)'입니다. 예를 들어, 유튜브 서버는 미국에 있고, 클라이언트는 한국에 있다고 가정해보죠. 그러면, 캘리포니아에 위치한 '라우터1', 부산에 위치한 '라우터2', 서울에 위치한 '라우터3' 순서대로 오기도 합니다. 정해진 경로는 아니에요. 동남아를 통해 경유하여 오는 데이터가 더 빠를 수도 있는 것이죠. 아무튼, 중간에 호스트와 호스트 사이에 위치한 라우터들을 '중간 노드(Middle Node)'라고 부릅니다. 

 

 

 

  위 그림을 보면, 다양한 경로가 있죠. 서버호스트에서 노드2-5를 통해 클라이언트 호스트로 가는 것이 빠른 길 중하나로 보여요. 이럴 때, 데이터전송의 속도를 높이기 위해서 '경로지정'을 할 수가 있는데요. 이를 '회선교환(Circuit Switching)'이라고 부릅니다. 즉, 지정된 경로만 데이터가 이동할 수 있는 것이 회선교환방식인 것이죠.   

 

  다만, 빠른 고속도로에 명절 때, 차가 몰리듯이 네트워크도 특정 경로는 트래픽(Traffic)이 증가할 수가 있어요. 이때는 유연하게 대처를 해야하죠. 이를 '패킷교환(Packet Switching)'이라고 부르는데요. 패킷(Packet)이란 '묶음'이라는 뜻이에요. 즉, 데이터를 일점 범위를 잘라서 각각 묶음으로 배송을 하는 것이죠. 회선교환과는 다르게 지정된 경로로 가는 것이 아니에요. 알아서 가장 가까운 중간노드를 경유해 수신지에 도착을 하죠. 다만, 데이터를 잘게 잘랐기 때문에 수신지에서 다시 조립을 해야겠죠. 이를 '캡슐화(Encapsulation)'이라고 부릅니다.

 

 

정리 

노드(Node) : 노드(호스트), 중간노드(라우터, 무선AP 등 네트워크장비)

데이터경로설정 : 회선교환, 패킷교환 

* 회선교환(Circuit Switching) : 데이터전송 Through 지정된 경로 > 한계 : 대처x if 지정경로 트랙픽 증가 

* 패킷교환(Packet Switching) : 데이터 묶음분할 trhough 다양한 경로 > 원리 : When 패킷 수신 시, 캡슐화(데이터조립) 진행 based on 헤더정보