포워딩 : 패킷을 목적지로 가는 경로 상에 놓는 것을 의미한다. 즉 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것을 말한다.

라우팅 : 포워딩을 돕기 위해 라우팅 테이블을 생성하여 패킷의 경로를 설정하는 것을 의미한다.

     즉 어떤 네트워크 안에서 통신 데이터를 보낼 경로를 선택하는 과정이다.

 

네트워크 계층은 하부의 물리 네트워크게 의해 패킷이 처리되는 과정을 감독하며, 연결에 따라 연결형과 비연결형으로 나눌 수 있다.

전달 유형에 따라 직접 전달과 간접 전달로 나눌 수 있다. 

 

연결형 서비스   패킷을 보내기 전에 먼저 네트워크 계층 프로토콜이 원격지 네트워크 계층 프로토콜로 연결을 설정한다.
연결이 설정되면 같은 발신지에서 같은 목적지로 패킷은 순서대로 전달된다.
패킷을 사이에는 서로 상관관계가 유지된다.
모든 패킷은 같은 경로를 경유하여 전달된다.
비연결형 서비스  각 패킷을 상호 독립적으로 취급하며 패킷을 사이에는 아무 관계가 없다.
하나의 메세지에 속하는 패킷들이 같은 목적지로 전달됨에도 불구하고 서로 다른 경로를 통하여 전달된다. 

 

 

직접 전달 (Direct Delivery) 간접 전달(Indirect Delivery) 
* 패킷의 발신지와 목적지가 같은 네트워크에 위치하는 경우 발생
* 전달이 최종 라우터와 목적지 호스트 사이에 수행되는 경우 발생
* 마스크를 사용하는 경우 : 마스킹 후 목적지 네트워크 주소와 자신이 연결된 네트워크 주소가 같으면 직접 전달이 수행
* 송신자는 목적지 IP 주소를 사용하여 목적지 물리 주소를 찾아냄
* 주소변환 : 최종 목적지의 IP 주소와 최종 목적지의 물리 주소 사이의 변환 
 * 목적지 호스트가 전달자와 같은 네트워크에 있지 않을 때 발생
* 최종 목적지의 물리적 네트워크에 연결된 라우터에 도달할 때까지 여러 라이터를 경유하여 전달 됨
* 목적지 IP 주소와 라우팅 테이블을 사용하여 패킷이 전달되어야 하는 다음 라우터와 IP 주소를 찾음
* 송신자는 ARP 프로토콜을 사용하여 다음 라우터의 물리 주소를 찾음
* 주소 변환 : 다음 라우터의 IP 주소와 다음 라우터의 물리 주소 사이의 변환

** 직접 전달은 호스트 to 호스트나 라우터 to 호스트, 나머지는 간접전달

 

※ 포워딩 기술

 

 

 

'Etc' 카테고리의 다른 글

TCP/IP 헤더  (0) 2018.11.06
IGMP 프로토콜  (0) 2018.11.04
ICMP 프로토콜  (0) 2018.10.30

TCP/IP 세그먼트 헤더에 대한 이미지 검색결과


- 발신지 포트 주소 -> 16비트 필드로 포트번호의 범위는 0에서 65535이다.  대부분의 경우 포트 번호는 발신지 호스트의 TCP 소프트웨어가 선택한 임시 포트 번호이다. 서버라면 well-known 포트 번호이다. 


- 목적지 포트 주소 -> 16비트 필드로 서버라면 well-known, 호스트라면 임시 포트 번호


- sequence number(순서 번호)

  -> 32비트 필드로, 세그먼트에 포함된 데이터의 첫 번째 바이트에 부여된 번호를 나타낸다. 이는 신뢰성 있는 연결을 보장하기 위해 전달되는 각 바이트마다 번호를 부여한다. 난수 발생기를 이용하여 초기 순서 번호(ISN)을 만들며, 이때 사용되는 ISN은 각 방향에 따라 일반적으로 다른 번호가 사용된다.


- 확인 응답 번호(Acknowledgement number)

  -> 32비트 필드로, 세그먼트의 발신지 노드가 상대편 노드로부터 수신하고자 하는 바이트의 번호를 정의한다. 예를 들어 세그먼트를 수신한 수신 노드가 상대 노드로부터 바이트 번호 n을 성공적으로 수신했다면, 수신자는 확인 응답 번호를 n+1을 정의한다. 확인 응답과 데이터는 함께 피기백 될 수 있다.


- 헤더 길이 

  -> 4비트 필드로, TCP 헤더의 길이를 4바이트 단위로 그 값을 나타낸다. 헤더의 길이는 20에서 60바이트가 될 수 있다. 


- 예약

  -> 6비트 필드로, 차후의 사용을 위해서 예약된 6-비트 필드이다.


- 제어(URG, ACK, PSH, RST, SYN, FIN)

  -> 6비트의 필드로 각각 1비트씩 사용한다.

 

URG - 긴급 포인트 필드의 값이 유효함을 의미

ACK-확인 응답 필드의 값이 유효함을 의미

PSH-데이터를 푸시함

RST - 연결을 다시 정의함   

SYN - 연결 설정을 위해 순서를 동기화할때 사용

FIN - 연결 종료를 사용



- 윈도우 크기

  -> 16비트 필드로, 상대편에서 유지되어야 하는 바이트 단위의 윈도우 크기를 정의한다. 윈도우의 최대 크기는 65535바이트이다. 윈도우 크기는 수신 윈도우라고 하며 수신 측에 의해서 결정된다. 이 경우 송신 측은 수신자의 지시에 따라야 한다.


- 검사합(checksum)

  -> 16비트 필드로, 검사합을 포함한다. 동일한 의사헤더가 검사합 계산을 위하여 세그먼트에 추가된다. TCP 의사헤더의 프로토콜 필드의 값은 6이다.


- 긴급 포인터(Urgent pointer)

  -> 긴급 플래그(URG)가 '1'로 정의되어 있는 경우에만 유효한 이 16비트 필드는 세그먼트가 긴급 데이터를 포함하고 있을 떄 사용된다. 이 필드에 있는 값과 순서 번호를 더하면 세그먼트의 데이터 부분에 있는 마지막 긴급 바이트의 번호를 알 수 있다.

'Etc' 카테고리의 다른 글

패킷의 전달과 라우팅  (0) 2018.11.18
IGMP 프로토콜  (0) 2018.11.04
ICMP 프로토콜  (0) 2018.10.30

IGMP(Internet Group Management Protocol)은 멀티캐스팅을 위하여 필요한 프로토콜이다.

그룹 멤버쉽을 관리하는 프로토콜로 멀티캐스트 라우터에게 네트워크에 연결된 호스트나 라우터들의 멤버쉽 상태에 대한 정보를 제공한다.

멀티캐스트 라우터는 다른 그룹을부터 매일 수천 개의 멀티캐스트 패킷을 수신할 수 있다. 만약 라우터가 호스트의 멤버쉽 상태에 대한 정보를 가지고 있지 않다면 이 라우터는 패킷들을 브로드캐스트하여야 한다. 이러하면 많은 트래픽이 발생되고 대역폭이 낭비된다. 


IGMP 동작 과정

- 그룹 가입 , 그룹 탈퇴, 멤버쉽 모니터링


그룹 가입

- 호스트나 라우터는 응용프로그램인 프로세스들이 가입한 임의의 그룹에 대한 멤버쉽이 기록되어 있는 리스트를 갖고 있으며, 호스트나 라우터는 그룹에 가입할 수 있다. 어떤 호스트의 프로세스가 새 그룹에 가입하기를 원한다면, 이 프러세스는 호스트에 요청을 보낸다. 호스트는 프로세스의 이름과 요청된 그룹의 이름을 리스트에 추가하고 라우터에게 멤버쉽 보고 메세지를 전송한다.

* 멤버쉽 보고 메세지 전송 과정

 - 멤버쉽 보고는 짧은 시간 내에 두 번 보내져야 한다. 첫 번째 보고가 손실되거나 훼손되더라도 두번째 보고가 대치할 수 있도록 하기 위함이다. 


그룹 탈퇴

- 호스트 내의 프로세스나 라우터 자신의 인터페이스에 연결된 네트워크가 모두 특정 그룹에 관심이 없다면 이 그룹에 대한 탈퇴 보고를 멀티캐스트 라우터에게 보낸다. 라우터는 탈퇴 보고를 받은 후 특수 질의 메세지를 그룹의 모든 호스트들에게 전송한다. 라우터는 일정 시간 동안 응답을 기다리며, 만약 이 시간 동안 멤버쉽 보고를 받지 못하면 라우터는 이 그룹에 대한 멤버가 없다고 가정하고 리스트에서 이 그룹을 삭제한다.


멤버쉽 모니터링

- 라우터는 LAN 내의 호스트나 라우터들이 그룹 멤버쉽을 계속 유지하기를 원하는지를 알기 위해서 일반 질의 메세지를 전송하여 모니터링한다. 이 메세지는 주기적으로 125초 간격으로 전송하며, 메세지의 그룹 주소 필드는 0.0.0.0으로 결정된다.


 호스트나 라우터가 일반 질의 메세지를 받으면 그룹에 관심이 있는 경우에는 멤버쉽 보고를 보낸다. 불필요한 트래픽을 방지하기 위하여 한 호스트만이 응답을 하며,이 응답을 지연된 응답이라고 한다. 

지연된 응답 방법이란 호스트나 라우터가 질의 메세지를 받는 경우 즉시 응답하지 않고 응답을 지연하는 것이다. 각 호스트나 라우터는 난수를 사용하여 타이머를 생성하는데, 이 타이머는 1초와 10초 사이에 만료된다.


'Etc' 카테고리의 다른 글

패킷의 전달과 라우팅  (0) 2018.11.18
TCP/IP 헤더  (0) 2018.11.06
ICMP 프로토콜  (0) 2018.10.30

IP 프로토콜이 비신뢰성, 비연결형 데이터그램으로 패킷을 전달하고, 목적지까지의 빠른 전송에 중점을 두고 있어, 종단 간의 신뢰성 있는 서비스를 보장 받지 못한다. 왜냐하면 IP 프로토콜은 오류 보고와 오류 수정 기능이 없으며, 호스트와 관리 질의를  위한 메커니즘이 없다.


이러한 IP 프로토콜의 단점을 보완하기 위해 사용하는 것 중 하나가 ICMP 프로토콜(인터넷 제어 메세지 프로토콜)이다. ICMP(Internet Control Message Protocol)은 네트워크 계층 내에서 IP보다 상위의 프로토콜이다. 


ICMP 메세지의 기능을 크게 오류 보고와 질의 기능으로 나눌 수 있다. 

오류 보고 메세지는 라우터나 목적지 호스트가 IP 패킷을 처리하는 도중 찾아내는 문제를 보고 한다. 오류 수정은 상위 계층 프로토콜에게 맡긴다.

질의 메세지는 쌍으로 발생되는데 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용된다.


ICMP의 헤더는 TYPE, CODE, Checksum, Rest of the header(기타 헤더 정보), Data Section으로 나누어져 있는데, 각각 8비트, 8비트, 16비트, 32비트, 32비트로 이루어져 있다. 

TYPE은 ICMP이 어떠한 용도로 사용되는 지를 알려 준다. CODE는 ICMP TYPE의 세부 내용을 나타내며, 목적과 용도를 보여준다. Checksum은 검사합으로 ICMP 메세지의 이상 유무를 판단한다.


오류 보고 메세지의 유형으로는 1) 목적지 도달 불가, 2) 발신지 억제, 3) 시간 경과, 4) 매개변수 문제, 5) 재지정 이 있으며, 질의 메세지의 유형으로는 1) 에코 요청과 응답, 2) 타임스탬프 요청과 응답, 3) 주소 마스크 요청과 응답, 4) 라우터 간청과 광고 가 있다.


<오류 보고 메세지>


● 목적지 도달 불가(Destination Unreachable)    TYPE = 3

라우터나 호스트가 데이터그램을 전달할 수 없을 때 데이터그램을 폐기한다. 이때 라우터나 호스트는 발신지 호스트에게 목적지 도달 불가(Destination Unreachable) 메세지를 보낸다. 유형의 코드 필드는 데이터 그램을 폐기하는 이유를 나타낸다. 단 목적지 도달 불가 메세지가 오지 않았다고, 데이터그램이 성공적으로 전송되었다는 보장은 없다. (라우터가 폐기하지 않아도 전달이 안되는 경우도 있다.)


● 발신지 억제(Source quench)    TYPE = 4

혼잡으로 인해 데이터그램이 폐기되면, 라투어나 호스트는 데이터그램의 송신자에게로 발신지 억제 메시지를 보낸다. 이 발신지 억제 메세지는 흐름제어 역할을 하며, 오버플로우를 방지한다.


● 시간 경과(Time Exceeded)    TYPE = 11

시간경과 메세지는 다음과 같은 두 가지 경우에 생성된다. 

첫번째로, 모든 데이터그램은 수명(time-to live / TTL)필드를 가지고 있으며, 해당 수명 필드는 라우터를 지날 때 마다, 필드의 값이 1씩 감소된다. TTL 필드의 값이 0이된 데이터그램을 라우터가 받으면, 라우터는 이 데이터그램을 폐기한다. 폐기 할 때 라우터는 ICMP 메세지 중 시간경과 메세지를 원발신지에 발송하는데, 이러한 메세지가 시간 경과 메세지로 유형 코드값은 0이다.

두번째로, 모든 단편이 지정된 시간내에 도착하지 않았을 경우 유형 코드 값 1의 시간 경과 메세지를 전송한다.


정리하자면, 라우터는 수명 필드의 값이 0인 데이터그램을 폐기 할경우 코드 값 0의 시간 경과 메세지를, 목적지 호스트에서 모든 단편이 지정된 시간내에 도착하지 않았을 경우 코드 값 1의 시간 경과 메세지를 발송한다.


● 매개변수 문제(Parameter Problem)    TYPE = 12

라우터나 목적지 호스트가 데이터그램의 필드에서 불명확하거나 빠진 값을 발견하면 데이터그램을 폐기하고 매개변수 문제 메세지를 발신지에게 보낸다. 유형 코드 0은 헤더 필드 중에서 불명로하게 빠진 것이 있을 때, 유형 코드 1은 헤더 필드 중 옵션의 요구되는 부분이 빠졌을 경우


● 재지정    TYPE = 5

송신 측 호스트나 라우터가 다른 네트워크로 패킷을 전송 할 경우 적절한 다음 라우터의 IP주소를 알아야 한다. 이를 위해 라우터는 라우터 테이블에 적절한 다음 라우터 IP주소를 기록하는데, 이 라우터 테이블은 어떤 알고리즘에 의해 동적으로 갱신된다. 하지만 호스트는 라우터보다 수가 많아 동적으로 갱신 시에 네트워크 트래픽이 지나치게 많아진다.  그러므로 호스트는 정적 라우팅을 사용한다.

네트워크는 변화 할 수 있기 때문에, 정적 라우팅을 사용하는 호스트는 잘못된 경로의 라우터에게 패킷을 보낼 수 있다. 즉 네트워크의 변화로 기존의 가장 효율적인 경로가 변경되는 경우이다. 이 떄 라우터는 호스트의 라우팅 테이블을 갱신하기 위해 호스트에게 재지정 메세지를 전송한다. 이때 호스트에게 전달받은 패킷은 해당 라우터의 테이블을 사용하여 목적지 호스트에게 전송한다.


 <질의 메세지>

● 에코 요청과 응답    TYPE = 8, 9

이 메세지는 고장 진단의 목적으로 설계되어 호스트나 라우터들이 서로 통신할 수 있는지 결정할 수 있다.

대표적인 예로 ping 명령어가 있다.


● 타임스탬프 여청과 응답    TYPE = 13, 14

호스트나 라우터 둘 사이의 IP 데이터그램이 지나가는데 필요한 왕복 시간을 결정하거나 두장치의 시계를 동기화하기 위해 타임스탬프 요청과 응답 메세지를 사용할 수 있다.


● 주소 마스크 요청과 응답    TYPE = 17, 18

호스트가 자신의 IP 주소는 알고 있지만 마스크는 모를 수 있다 이 때 마스크 값을 얻기 위해 호스트는 LAN 상의 라우터에게 주소 마스크 요청 메세지를 보낸다. 


● 라우터 간청과 광고    TYPE = 10, 9

라우터가 정상적으로 동작하는 지 알기 위해 사용하는 질의 메세지이다. 

호스트는 라우터 간청 메세지를 브로드 캐스트 할 수 있다. 이 요청 메세지를 라우터가 받고 브로드캐스트로 라우터 광고 메세지를 호스트들에게 전송할 수 있으며, 간청 메세지를 받지 않아도 라우터는 광고 메세지를 브로드캐스트로 전송할 수 있다.

'Etc' 카테고리의 다른 글

패킷의 전달과 라우팅  (0) 2018.11.18
TCP/IP 헤더  (0) 2018.11.06
IGMP 프로토콜  (0) 2018.11.04

+ Recent posts