컴퓨터 네트워크 네트워크 개념 2

zoo_gathers·2024년 10월 10일

컴퓨터 네트워크

목록 보기
4/20


송신 호스트에서 수신 호스트로 데이터를 전달하려면 중개 역할을 수행하는 중개 노드를 거쳐야 함.(송신 호스트와 수신 호스트가 서로 다른 네트워크에 존재하는 경우)

중개 시스템은 데이터가 목적지까지 올바르게 전달되도록 배정 기능을 수행함.

송신 호스트의 물리 계층에서 전달된 데이터는 중개 노드를 거치게 됨.

이때 중개 노드의 네트워크 계층으로 올라간 데이터의 헤더 정보를 해석해 적절한 경로를 선택 후 다시 전달함.
(헤더는 송신 호스트에서 내려오면서 붙은 것으로 나와 상대방의 IP 주소, MAC 주소, 포트 번호 6개의 주소와 여러 정보들이 뭉쳐있음.)

중개 시스템에서는 경로 배정 기능을 수행하는 네트워크 계층의 프로토콜이 동작하는데, 이와 같은 경로 배정 기능을 라우팅이라 함.

라우터는 자신에게 도착한 데이터의 헤더 정보를 해석해 적절한 경로를 선택해야 하며, 다음 라우터로 보내기 전에 헤더 정보를 수정하는 작업도 진행.

전송 계층
= 호스트에서 실행되는 프로세스와 프로세스 사이에 연결을 설정하여 데이터를 주고받을 수 있게 해주는 것이 전송 계층

전송 계층의 하위에 있는 물리, 데이터 링크, 네트워크 계층은 전송 계층의 연결을 설정하고 지원하는 역할을 수행

상위에 있는 세션, 표현, 응용 계층은 전송 계층의 연결을 어떻게 활용할지에 대해 다룸.

마지막 주체가 되는 끝단이 되는 얘네들의 연결을 설정하고 데이터를 전달하는 과정 속에서 어떤 오류라든지 기타 등등을 제어하는 계층

물리 계층
= OSI 7계층 모델의 가장 아래에 위치, 전송 매체의 물리적 인터페이스에 관한 사항을 기술

데이터 링크 계층
= 물리 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결
= 데이터 링크 계층을 이용해 전송되는 데이터를 프레임이라고 부름

네트워크 계층
= 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정하는 라우팅 문제를 처리

= 전달 경로 선택은 미리 정해지는 1. 정적인 방식, 네트워크의 현재 부하 상태에 따라 결정되는 2. 동적인 방식으로 구분

= 네트워크의 트래픽이 과도하게 증가하는 문제를 조절하는 혼잡 제어 기능도 네트워크 계층에서 담당

전송 계층
= 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단 통신 기능을 제공

= 전송 계층에서는 전송 오류율, 전송 속도 등과 같은 일반 사용자의 서비스 요구 유형에 대한 고려와 흐름 제어 기능도 제공

세션 계층
= 기능은 전송 계층과 거의 유사함

= 대화 자체를 할 것인지 안 할 것인지를 결정하는 단계

= 송수신 호스트 사이의 대화 제어를 비롯해 상호 배타적인 동작을 제어하기 위한 토큰 제어, 일시적인 전송 장애를 해결하기 위한 동기 기능 등을 제공

토큰 제어 = 서로 대화를 하는데 동시에 서로 말하게 되면 알아듣지 못하기 때문에 단순히 토큰이라는 발언권을 제공해 토큰을 가지고 있는 사용자가 말할 수 있도록 하는 것.

일시적인 전송 장애를 해결하기 위한 동기 기능 = 이미 대화의 충돌이 발생했을 때 어떻게 처리할 것인지에 대한 기능을 제공

표현 계층
= 계층 5까지는 주로 데이터의 전송에 관한 내용을 다루지만 표현 계층은 데이터의 의미와 표현 방법을 처리

말 그대로 표현을 어떻게 하느냐에 대한 것으로

예를 들면 데이터에 대한 암호화가 있다.

타인이 데이터를 보지 못하도록 암호화를 진행하고, 상대방이 받았을 때 이걸 풀도록 하는 것이다.

응용 계층
= 최상위의 응용 계층에서는 다양하게 존재하는 응용 환경에서 필요한 기능을 다룸

통신을 할 때 어떤 기능을 활용해 통신을 할 것인지에 대한 계층

인터넷 = 데이터의 중개 기능을 담당하는 네트워크 계층

IP 프로토콜을 사용하는 네트워크임

인터넷에 연결하고자 하는 호스트는 무조건 IP 프로토콜을 지원해야 함.

전송 계층은 TCP나 UDP를 사용,

현재 인터넷에서 주로 사용하는 IP 프로토콜은 버전 4임

인터넷에 연결된 호스트들의 네트워크 구현 모델에서는 전송 계층까지의 기능을 시스템 공간인 운영체제 내부에 구현함.

  1. 시스템 공간

소켓 = 운영체제에서 시스템 콜 기능으로 구현됨.

TCP = 연결형 서비스(데이터를 전달할 때 이미 경로를 만들어 놓은 것)

UDP = 비연결형 서비스(데이터를 전달할 때 알아서 개척해 가도록 한 것)

인터넷에서 네트워크 계층은 IP로 구현, 전송 패킷의 올바른 경로 선택 기능을 제공

네트워크 프로세스를 실행하는 호스트 사이에는 다수의 라우터가 존재,

이 라우터들은 IP 프로토콜을 이용하여 패킷 중개 기능을 수행

  1. 사용자 공간

세션 ~ 응용 계층까지의 기능은 사용자 응용 프로그램으로 구현함.

프로그램 환경에서 전송 계층의 기능을 제공하는 소켓 시스템 콜을 호출해 TCP, UDP 기능을 사용할 수 있음.

간단히 전송 ~ 물리 계층까지 4개의 계층은 운영체제에 따라서 기능이 지원됨.

주로 운영체제에 의해서 기능이 지원되는데 그럼 사용자가 프로그램을 개발할 때 운영 체제에 따라 기능이 지원되는 것을 바꾸지 못할까?

예를 들어 우리가 데이터를 주고 받을 때 TCP 말고 UDP를 쓰고 싶은데 운영체제가 기본으로 TCP를 쓰도록 되어있다면 이걸 바꾸지 못할까?

아니다 우리는 소켓이라는 시스템 콜을 사용해 터치가 가능하다.

소켓 시스템은 유닉스, 리눅스, 윈도우즈 운영체제 등 인터넷에 접속 가능한 모든 호스트에서 제공

위 이미지를 보면

인터넷은 TCP, UDP 2개의 프로토콜을 사용하고

IP를 사용한다.

그리고 IP 양 옆으로 ARP/RARP, ICMP가 존재한다.

이번엔 이 2개에 대해서 보자.

ARP와 RARP


ARP = 사용자로부터 입력된 수신 호스트의 IP 주소를 이용해 MAC 주소를 구하는 기능

  1. 위 사진을 보면 A가 다른 네트워크 B의 MAC 주소를 가져오기 위해 A 네트워크의 모든 호스트에게 물어본다.

  2. 호스트 B와 일치하는 IP가 없다면 라우터가 자신의 MAC 주소를 A 호스트에게 전달한다.

  3. 라우터는 연결된 네트워크에 가서 IP주소를 하나씩 물어보고 맞는 호스트가 있으면 MAC 주소를 가져온다.

만약 A가 속한 네트워크에 B가 있다면

  1. A가 처음에 모든 구성원한테 같은 IP 주소가 있는지 물어보면 IP 주소가 같은 B가 바로 MAC 주소를 알려줄 것이다.

모든 네트워크 구성원들에게 메시지, 데이터를 보내는 것 = 브로드 캐스팅 방식


RARP = 자신의 MAC 주소는 알지만 자신의 IP 주소를 모르는 경우 MAC 주소를 IP 주소로 변환하는 기능

우리가 통신을 할 때 상대방의 IP, MAC 포트 번호를 알아야 하지만 동시에 자신의 IP, MAC, 포트 번호도 알아야 한다.

이때 내 MAC 주소는 알지만 IP 주소를 모를 때 RARP를 사용한다.

ICMP = IP 프로토콜이 동작하는 과정에서 전송 오류가 발생할 수 있는데 오류가 발생하면 반드시 송신자에게 회신해 복구 잡업을 진행하는 기능.

profile
전공: 소프트웨어, 관심 분야: LLM, NLP, 지식 그래프

0개의 댓글