네트워크층 개요(네트워크보안)(Wireshark로 배우는 컴퓨터 네트워크)
용어
교환 :
패킷이 라우터의 한 포트에 도착하면 이 패킷은 다른 포트를 통하여 다음 교환기로 전달되는 과정
라우터 :
네트워크 내의 교환기
레이블 :
가상 회선 식별자
오류제어 :
훼손되거나 손실되거나 중복된 데이터그램을 탐지하는 메커니즘을 포함하는 것, 오류를 탐지한 후 수정하는 메커니즘도 포함
라우팅 :
경로 지정
본문 정리
개요
수백만 대의 컴퓨터가 있다. 하지만 송신자, 수신자 이렇게 딱 2대의 컴퓨터만 소통에 참여한다. 이 과정을 보여준다.
교환
회선 교환
회선 교환에서는 메시지 전달 전에 발신지와 목적지 사이에 물리 회선이 생성된다. 회선이 완료되면 패킷을 분할하지 않고 전체를 보낸다. 모든 메시지를 보내면 발신지는 네트워크에 통보해 다른 연결을 위하여 사용할 수 있게 한다.
패킷 교환
오늘날 사용하는 것으로, 상위 계층의 메시지가 관리 가능한 크기의 패킷으로 분할되며 이를 네트워크를 통하여 전달한다. 목적지에선 모든 패킷이 오면, 이 메시지를 상위 계층에 전달한다. 패킷 교환망은 데이터그램과 가상 회선을 사용하여 패킷을 보낸다.
네트워크층에서 패킷 교환
네트워크층은 패킷 교환망으로 설계되어 있다.(발신지에서 메시지가 데이터그램이라는 관리 가능한 크기의 패킷으로 분할된다는 것을 의미)
비연결형 서비스
핵심은 패킷이 상호 독립적이며 네트워크층은 발신지에서 목적지까지 패킷 전달만 책임진다라는 것이다. 즉 패킷 뒤에 같은 메시지의 패킷이 올 수도 있고 다른 메시지의 패킷이 올 수도 있다. 이러한 패킷은 헤더에 속한 발신지 주소와 목적지 주소를 기반으로 전달된다. 패킷이 폐지되면 발신지 주소를 사용하여 발신지에 오류 메시를 보낸다.
연결형 서비스
최근에 많이 전환되고 있다. 핵심은 한 메시지에 속한 모든 패킷 사이에는 관계성이 있다는 것이다. 한 메시지에 속한 모든 데이터그램이 송신되기 전에 데이터그램의 경로를 나타내는 가상회선이 필요하다. 이 가상회선을 지정하기 위해 가상 회선 식별자인 흐름 레이블(그니까 흐름 레이블은 가상회선 식별자 중 하나)을 가지고 있어야 한다.
연결 서비스는 연결 설정, 데이터 전송, 연결 해체로 구성된 세 단계 과정이 사용된다.
연결 설정은 발신지와 목적지 주소를 사용하여 연결형 서비스를 위한 테이블 엔트리를 생성
연결 해체는 발신지와 목적지는 라우터에게 해당하는 엔트리를 삭제
(여기서 말하는 엔트리가 뭔지 모르겠다, 길인 것 같은데 흠... 어렵구만)
설정 단계 : 라우터는 가상 회선을 위한 엔트리를 생성한다. 요청 패킷과 응답 패킷이 송신자와 수신자 사이에서 교환된다.
(설정 단계 중)요청 단계 : 출력 레이블을 제외한 입력 포트와 레이블, 출력 포트는 알 수 있다. 이것이 요청 패킷이다.
(설정 단계 중)확인 응답 : 요청 단계에서 3가지를 채웠기 때문에 처음 송신자가 누군지 안다. 위의 요청 패킷에 출력 레이블을 채워준다. 이것이 확인응답 패킷이다.
데이터 전송 과정 : 이제 데이터를 보내야한다. 데이터그램 앞에 입력 레이블을 추가한다. 물론 라우터를 지나갈 때마다 해당 값으 변경된다.
연결 해제 과정 : 발신자가 해제 패킷을, 송신자가 확인 패킷을 보낸다. 모든 라우터는 해당 엔트리를 삭제한다.
네트워크층 서비스
밑의 내용은 비연결형을 기반으로 한다.
논리 주소체계
이 장이 적힌 이유를 모르겠다. 무슨 말을 하고 싶은거지?
발신지 컴퓨터에서 제공되는 서비스
네트워크층에서는 네 가지 서비스를 제공한다.
먼저 패킷화를 알아보면, 상위 계층으로 부터 받은 데이터를 데이터그램으로 바꾸는 것이다. 데이터에 패킷 발신지와 목적지 논리 주소, 단편화 정보 등등을 포함하는 헤더를 추가하는 것이다.
그 다음은 다음 홉의 논리 주소 찾기이다. 단순히 말하면 라우팅 케이블을 이용한다는 것이다. 준비된 데이터그램은 패킷의 발신지와 목적지 주소를 가지고 있고 발신지와 같은 네트워크가 없다면 라우터로 전달한다. 이러한 과정에서 라우팅 테이블이 사용된다.
그 다음은 다음 홉의 MAC 주소 찾기이다. 네트워크층은 데이터링크층에 데이터그램에 전달한다. 여기서 물리 주소를 찾기 위해 ARP를 이용한다.
마지막은 단편화이다. LAN이나 WAN은 한 프레임에 전달 할 수 있는 최대 데이터 크기를 가지고 있는데 이를 최대 전송 단위(MTU)라 한다. 데이터 링크층에 전달되기 위해 작은 크기로 변환 하는 것을 단편화라 한다. 이때 데이터가 단편화되어도 헤더는 같은 내용이여야 한다.
각 라우터에서 제공되는 서비스
라우터의 네트워크층은 입력 데이터링크층과 출력 데이터링크층 사이에 있는데, 이때 출력 데이터링크층에 전달하기 위해 입력 데이터링크층에서 받은 자료를 단편화 할 수 있다. 그 밖에 논리 주소 찾기, 다음 홉의 MAC 주소 찾기를 할 수 있다. 이 과정을 적용하기 전에는 라우터에선 검사합을 사용하여 데이터그램의 유효성을 검사해야한다.
목적지 컴퓨터에서 제공되는 서비스
각 데이터그램의 유효성을 검증한 후 각 단편에서 데이터를 추출하고 저장하며, 모든 단편이 도착하면 데이터가 재조립된다. 네트워크층에서 재조립 타이머가 설정되는데 타이머가 만료되면 모든 단편은 폐기되고 오류 메시지가 전송된다.
네트워크층 문제점들
오류 제어
오류 제어 메커니즘을 적용하지 않는다. 라우터에 의해 데이터그램이 처리되는 동안 오류가 발생하면 이를 데이터 링크층은 탐지하지 못한다. 이를 위해 검사합 필드를 추가하였다.(해당 내용은 7장에서 다룬다고 한다.) 이러한 검사합은 발신지와 각 라우터에서 계산되어야 한다. 또한 인터넷은 ICMP프로토콜을 사용한다.
흐름 제어
흐름제어는 수신자의 수신 능력을 초과하지 않도록 발신지의 데이터 전송량을 조절한다. 하지만 현재 네트워크층은 흐름제어를 제공하지 않는다.
혼잡 제어
혼잡이란 네트워크 계층에서 인터넷 내부에 데이터그램이 너무 많이 존재하는 상황이다. 일부 라우터가 이러한 상황에서 데이터그램의 일부를 폐기할 수 있는데 이는 시스템의 붕괴로 이루어진다.
비연결형 네트워크에서 혼잡을 제어하는 방식 중 신호방식이 있는데 이 방식은 후향과 전향으로 2가지가 있다. 후향 신호방식은 혼잡이 발생한 방향과 반대 방향으로 전달되는 데이터그램 내의 한 비트를 1로 설정하여 송신자에게 혼잡이 발생하였음을 알린다. 전향 신호방식은 혼잡이 생긴 방향과 같은 방향으로 전달되는 패킷 내의 한 비트를 1로 설정하여 수신자에게 혼잡에 대해 경고할 수 있다.
인터넷 네트워크층에는 전향 또는 후향 신호방식이 사용되지 않는다. (위에 서술한 건 상위 계층이 제어하는 경우이다.)
연결형 네트워크는 추가 가상 회선을 생성 할 수 있지만 이는 더 큰 문제를 야기할 수 있다. 따라서 진보된 협상을 설정 과정에서 이용한다. 여기서 진보된 협상이란 가상 회선을 설정할 때 송신자와 수신자는 트래픽 수준을 합의함을 의미한다.
서비스 품질
QoS(서비스 품질)은 상위 계층에 구현되어 있고 네트워크층에선 작업하지 않는다.
라우팅
라우팅 프로토콜을 따로 이용하여 라우팅을 한다. 이는 네트워크층의 서비스를 사용할 수도 있고 전송츠의 서비스를 사용할 수도 있다.
보안
비연결형 네트워크층에 보안을 제공하기 위하여 비연결형 서비스를 연결형 서비스로 변경하는 수준에서 가상화가 필요하게 되었다.
연습문제
Q1. 인터넷이 시작되었을 대 네트워크층을 간단하게 만들기 위하여 네트워크층을 ---서비스로 만들기로 결정하였다.
비연결형
Q2. 비연결형 서비스에서 각 패킷은 ---기반으로 전달된다.
목적지 주소
Q3. 연결형 서비스에서 각 패킷은 ---기반으로 전달된다.
레이블
Q4. ---서비스에서 한 메시지에 속한 모든 패킷 사이에 아무런 관계성이 없다.
비연결형
Q5. ---에서 모든 메시지가 패킷으로 나뉘지 않고 발신지에서 목적지로 전달된다.
회선 교환
Q6. ---에서 메시지는 전송되기 전에 관리 가능한 패킷으로 나뉜다.
패킷 교환
Q7. ---제어는 훼손되거나 분실되거나 중복된 패킷을 탐지하는 메커니즘을 포함하는 것을 의미한다.
오류
Q8. ---제어는 목적지에서 데이터가 넘치는 일이 발생하지 않도록 발신지가 보내는 데이터의 양을 조절하는 것을 의미한다.
흐름
Q9. 네트워크에서 ---제어는 인터넷 내에 너무 많은 수의 패킷이 존재하는 상황을 처리하는 것을 의미한다.
혼잡
Q10. --- 패킷은 라우터가 혼잡을 탐지한 경우 라우터에서 송신자에게 보내지는 특별한 패킷이다.
초크
이하의 글은 필자의 생각이다.
Q1. 비연결형 서비스의 장단점에 관해 설명하라.
지연이 적고 패킷 전송 속도가 빠르지만 프로토콜에 신뢰성이 없다.(도착 순서성이 엉망이라 패킷 순서를 정리하는 지연이 생김)
Q2. 연결형 서비스의 장단점에 관해 설명하라.
수신자가 데이터 순서를 정리할 필요 없이 순차적, 안정적 수신이 가능하지만 지연이 많고 전송 속도가 느리다.
Q3. 연결형 서비스의 레이블이 n비트라면 몇 개의 가상 회선이 동시에 설정될 수 있는가?
2^n개
Q4. 목적지 컴퓨터가 여러 컴퓨터로부터 메시지를 수신한다고 가정하자. 한 발신지에서 온 단편이 다른 발신지에서 온 단편과 섞이지 않았음을 어떻게 확인할 수 있는가?
데이터그램에는 해더와 트레일러가 포함되어 있는데 여기서 발신지를 확인 할 수 있다.
Q5. 목적지 컴퓨터가 한 발신지로부터 여러 패킷을 수신한다고 가정하자. 한 데이터그램의 단편이 다른 데이터그램의 단편과 섞이지 않았음을 어떻게 확인할 수 있는가?
데이터그램에는 해더와 트레일러가 포함되어 있는데 여기서 발신지를 확인 할 수 있다.(4번과의 차이는 포트주소를 사용한다 정도가 될 듯하다)
Q6. 패킷이 왜 주소와 레이블을 모두 필요로 하는가?
주소는 최종 목적지를 설정하기 위해, 레이블은 중간중간 라우터를 이용하기 위해
Q7. 비연결형 서비스와 연결형 서비스의 지연을 비교하라. 메시지가 큰 경우 어느 서비스의 지연이 더 작은가? 메시지가 작은 경우 어느 서비스의 지연이 더 작은가?
메시지가 크면 연결형 서비스, 메시지가 작으면 비연결형 서비스
Q8. 왜 단편화가 가장 마지막 서비스가 되어야 하는가?
헤더는 물리, 논리 주소를 받아야 생성된다. 이러한 헤더를 만들어야 단편화한 조각에 헤더를 붙일 수 있다. 따라서 이전에 패킷화 다음 홉의 논리, MAC 주소를 찾아야 한다.
Q9. 왜 각 라우터에서 단편화가 필요한지 설명하라.
네트워크마다 데이터그램의 전송량이 다르기 대문에 최적화된 전송량을 맞추기 위해 재단편화한다.
Q10. 재조립이 각 라우터가 아니고 최종 목적지에서 수행되어야 하는 이유를 설명하라.
라우터를 지날때마다 단편화를 하는 것은 의미가 없다.
Q11. 왜 타이머를 설정하고, 타이머가 만료되었을 때 모든 단편을 폐기해야 하는가? 이러한 타이머의 만료 시간을 결정하면서 어떠한 기준을 사용할 수 있는가?
네트워크의 안정성과 신뢰성을 높이기 위해, 후자는 모르겠다.