[CS] 컴퓨터 네트워크 7 Layers

재오·2023년 4월 2일
3

CS

목록 보기
6/35
post-thumbnail

네트워크

우리는 네트워크를 통해 데이터를 주고 받는다. 여기서 네트워크와 네트워크를 연결한 것을 internet이라고 하고 이런 네트워크와 네트워크를 연결하는 방식 중에서 현재 사람들이 가장 많이 사용하는 것을 Internet이라고 한다. 이러한 연결 중에서 약속을 하여 정해진 규칙을 프로토콜 이라고 한다. 프로토콜 중에서 우리가 깊게 배울 프로토콜은 TCPIP 가 있다.

5 Layer 계층(TCP / IP)

OSI 모델은 7 Layer을 가지고 있다. 각 층에서는 많은 프로토콜이 존재하여 데이터를 분업화하여 처리하는 과정을 갖는다. 현재 우리가 많이 쓰는 Internet은 5계층을 이용한다.

위에서부터 살펴보자. Application 계층은 사장님이라고 비유하면 이해하기가 쉬워진다. Transport 계층은 비서의 역할과 비슷하다. 배송의 오더를 사장님한테 받아서 시행을 하거나 혹은 배송의 마지막 과정에서 건물에 있는 어떤 호수에 가져다 줘야하는지 넘버를 적어주는 것과 비슷한 의미를 지닌다. Network 계층은 배송 부서와 같은 역할을 한다. Data Link 계층은 택배회사와 같은 역할을 한다. 어떤 택배가 인하대역에서 서울역까지 간다면 주안역으로 일단 보내고 최종목적지가 서울역인 것을 확인하면 서울역까지 가고 다음 역은 신도림역이구나하고 보내는 것의 목적지까지 진행되는 무한반복의 과정을 의미한다. 한마디로 주소를 넣어주는 역할을 한다. 이것이 5계층을 쉽게 이해하는 과정이다.

조금 더 깊게 살펴보자. 거꾸로 살펴보면 Phisical Layer 에서는 비트를 어떻게 보낼 것인지, 와이파이로 보낼 것인지, LTE로 보낼 것인지 정말 물리적인 현상에 대해 고민하는 것을 의미한다.

  • Data Link 계층은 제일 중요한 것이 hop-to-hop 방식이다. 스텝 바이 스텝으로 연결하는 추가적인 정보가 있어야만 한다. 안에는 MAC 주소가 담긴다. communication unit을 frame 이라고 이름을 붙인다.

  • Network Layer 계층은 가장 중요한 용어가 source to destination 이다. 안에는 IP주소 가 들어가게 되고 communication unit을 Datagram 이라고 이름을 붙인다.

  • Transport Layer 계층은 가장 중요한 용어가 process to process 이다. 안에는 Port넘버가 들어가게 되고 communication unit을 TCP는 segment, UDP는 user datagram, 혹은 packet이라고 이름을 붙인다.

  • Application 계층은 헤드가 들어갈 수도 있고 안들어갈 수도 있다. communication unit의 이름은 message라고 한다.

왜 communication unit의 이름이 각 계층마다 다르게 정해져 있을까? 그 이유는 어디서 문제가 발생하였는지 쉽게 알 수 있게 하기 위해서이다.

전달 방식

중앙제어 전달 방식(Circuit Switching Network): 중앙에서 제어를 하다보니 중앙에 폭탄이 터지면 다 죽는다. 위험한 방식이다. 중앙만 모든 것을 알고 있다. 미리 경로설정을 해놓고 보낸다.

목적지 주소 전달 방식(Packet Switching Network): 지금 쓰는 인터넷은 이 방식을 이용한다. 분산적으로 관리를 한다. 분산적으로 정보를 알 수 있어서 공유를 한다. 모든 데이터를 packet 형태로 보낸다. 출발하기 전에 경로를 모르고 출발한다.

맥주소가 무엇인가?

위에 그림에서와 같이 청록색 상자로 된 것이 맥주소이다.

10번부터 87번까지 보낼 때 한번에 보내는 것이 아니라 10번→28번까지 간 후 맥주소에 적힌 87번까지 가는거구나를 확인한 후 컨테이너를 계속 이동. 53번, 65번을 확인 후 87번이 가져가는 시스템이다. 하지만 이것은 구식이다.

최신 방식은 10번과 28번 53번 87번이 다 스위치(인터페이스)에 연결 되어있다고 생각한다. 10번에서 데이터를 보내면 스위치가 87번이 어디에 있는지 모르니 28번에 보낸다. 28번은 자기꺼가 아니라 버리고 53번한테 보내면 53번도 버리고 87번이 자기꺼여서 가져간다. 이 방식이 인터넷에서 데이터를 주고 받는 방식이다.

스위치에 10번이 인터페이스 1번이랑 연결되어있구나 하고 테이블에 저장해둔다. 또한 인터페이스 4번이 87번이랑 연결되어있구나 하고 저장한다.

용어 설명

리피터: 멀리 있는 컴퓨터에 데이터를 보낼 때 약해지는 신호를 증폭시키는 장치이다.

허브 : 인터페이스가 여러개 있는 것을 신호 증폭시키는 장치. 리피터와 비슷한 연결이지만 아웃풋이 여러개인 것을 의미한다.

브릿지 : 리피터 역할 + 필터링을 한다. 걸러서 보낸다.

스위치 : 허브 역할 + 필터링을 한다. 걸러서 보낸다.

알파벳으로 설명되어있는 것(A,P)은 IP주소를 의미한다. 십진법은 맥 주소이다. IP주소는 바뀔 수 없고 맥주소는 가변 가능하다고 가정을 한다. P로 가기 위해서는 어디를 지나가는 지를 알아야 한다. 라우터 테이블이 존재한는데 한번에 갈 수가 없기 때문에 라우터 테이블에는 Destination이 P이지만 Next는 F라고 적혀있다. Router1은 목적지 주소를 보고 다음 N을 어디로 보내야하는지 확인한다. 테이블을 찾아서 N인 것을 확인하면 그쪽으로 보낸다. 랜선1에서는 맥주소가 20이지만 랜선2에서는 맥주소가 99이다. 전달할 때 보내는 IP주소와 받는 IP주소는 바뀌면 안된다.

Router는 IP주소와 해당 맥 넘버를 찾아서 frame이 맞는지 확인한다. 사실 랜선1에 있는 스위치에도 많은 컴퓨터가 연결되었지만 라우터와 연결이 되는 것이다.

비서 예시를 생각해보면 발송하는 주소와 받는 주소를 적어둔다. 보내는 곳이 a이고 받는 곳이 j인 셈이다. 그리고 보내는 데이터를 파란색 Data이다. (폴트번호 필요)이 사이사이 생략된 것이 전 그림과 같은 맥주소가 담긴 과정이다. 두번째 칸처럼 A부터 P까지 IP주소를 적어서 보내는일(Network layer)(IP주소 필요). 세번째와 같이 합투합을 하기위한 맥주소는 계속 바뀌게 된다(전 그림)(Data Link Layer)(맥주소가 필요)

  • 맥주소는 그 해당 로컬에서만 안겹치면 된다. 어짜피 해당 로컬에서만 사용할 것이기 때문에…

폴트넘버를 알아야만 데이터를 전송할 수 있고 받을 수 있게 된다. 폴트넘버를 어떻게 알까? 웹서버는 무조건 80번 쓰기때문에 브라우저는 걱정하지 않아도 된다. 웹서버가 아닌 다른 서버를 살펴보면 다른 번호가 부여되어야 한다. 특정 어플리케이션에 특정 번호를 쓰기 때문에 현재 따로 신경을 안써도 되는 것이다. 내장이 되어있기 때문에 따로 k라고 Sender에게 전달을 해주지 않아도 된다.

profile
블로그 이전했습니다

4개의 댓글

comment-user-thumbnail
2023년 4월 2일

좋은 정리 감사합니다 🥹

1개의 답글
comment-user-thumbnail
2023년 4월 10일

폴트라고 쓰는 사람 첨 보네용 포~ㄹ트

답글 달기