(1) Network Layer(네트워크 계층) - 네트워크 계층 서비스 / 성능, 패킷 스위칭
네트워크 계층 서비스
- 패킷화(packetizing)
- 포워딩(fowarding)과 라우팅(routing)
- 흐름제어, 오류제어, 혼잡제어
패킷화(packetizing)
- 출발지에서 유료부하(payload)를 네트워크 계층 패킷에 캡슐화
- 캡슐화란 헤더와 푸터(Trailer, 트레일러)를 추가하는 것
- TCP segment(TCP header + Application data) --> IP packet(IP header + TCP segment)
- 헤더(IP)는 바뀔 수 있음
- 네트워크 특정 구간에서 MTU가 작으면, 데이터를 잘라서 보냄
- Stream은 앞 뒤 데이터에 연관성이 있고, Datagram은 연관성이 없음(독립적인 패킷임)
- IP packet을 캡슐화를 하는 경우, Ethernet header와 Ethernet footer가 추가됨
- 목적지에서 네트워크 계층 패킷으로부터 유료부하를 역캡슐화(decapsulating)
- 네트워크 계층은 출발지에서 목적지까지 Payload를 바꾸거나 이용하지 않고, 목적지까지 날라주는 임무를 수행함
라우팅과 포워딩
- GPT / 라우팅 : 데이터 패킷이 최적의 경로를 통해 목적지까지 도달할 수 있도록 경로를 결정하는 과정입니다
- 라우팅 테이블을 만들고 유지하는 세 가지 프로세스
- 다양한 라우팅 프로세스
- RIP, OSPF, BGP, IS-IS 등의 라우팅 프로토콜을 동작시키는 프로세스
- GPT : 위 프로토콜을 실행하여 네트워크의 다른 라우터들과 정보를 교환함
- 라우팅 테이블
- 라우팅 프로세스의 입력을 받고, 포워딩 프로세스의 정보 요청에 응답하는 프로세스
- GPT : 라우팅 프로세스의 결과는 라우팅 테이블에 저장됩니다.
- GPT : 라우팅 테이블은 목적지 네트워크, 다음 홉 라우터, 해당 경로의 메트릭(비용) 등의 정보를 포함합니다
- 패킷 전송 결정을 위해 테이블 정보 요청을 하는 프로세스
- (1) 라우팅 프로세스를 통해서 (2) 라우팅 테이블이 유지되고, (3) 패킷 전송이 결정된다
- 다양한 라우팅 프로세스
- 포워딩 결정 프로세스
- Routing process --> Routing table --> longest prefix match를 찾아 fowarding process 진행 (packet flow)
- 포워딩 프로세스
- 포워딩 테이블에서 Forwarding value를 보고 Output interface를 결정
- 들어온 packet을 내보내지 않는 것을 Blocking이라고 함
패킷 스위칭(Packet Switching)
- GPT : 패킷 스위칭은 패킷을 개별적으로 독립된 단위로 취급하고, 각 패킷을 최적의 경로로 동적으로 전송하는 방식
- 라우터는 입력 포트와 출력 포트(들) 간에 연결을 제공하는 스위치
- 전시 스위치는 입력과 출력을 연결시켜 전기를 흐르게 함
- 2가지 접근 방식
- 데이터그램(datagram) 방식
- Connectionless(비연결지향)
- 가상회선(virtual-circuit) 방식
- Connection-oriented(연결지향)
- ex) 전화 : 전화 연결 후, 데이터 전송 후, 연결 종료되는 대표적인 연결지향 방식
- 데이터그램(datagram) 방식
데이터그램 방식
- GPT : 데이터그램 방식은 네트워크 계층에서 사용되는 비연결형(Connectionless) 프로토콜을 기반으로 한 통신 방법
- 네트워크 계층은 비연결형 프로토콜
- 각각의 패킷은 서로 독립적으로 처리됨
- 각각의 패킷은 다른 패킷과 관련이 없다
- 따라서 하나의 메시지가 패킷으로 나누어 목적지로 전달될 때,각각의 패킷은 동일 경로, 혹은 다른 경로를 통해 전달 될 수 있다 (도착 순서도 다를 수 있음)
Connectionless Packet Switch Network
- GPT : 데이터 전송 시 사전에 설정된 경로나 연결 없이 각각의 패킷을 독립적으로 전송하는 네트워크 아키텍처. 대표적으로 IP(인터넷 프로토콜)이 있음
- GPT : 각 데이터 패킷이 네트워크를 통해 개별적으로 라우팅되며, 패킷마다 다른 경로를 통해 목적지에 도달할 수 있음.
비연결형 네트워크 방식의 라우터 Fowarding process
- 패킷 (SA + DA + Data) 수신
- DA를 보고 포워딩 결정
- 결정된 인터페이스를 통해 다음 홉으로 전송
가상회선 방식
- 연결지향 서비스(가상회선 방식)에서는, 하나의 메시지에 속하는 모든 패킷은 서로 연관이 있음
- 메시지의 데이터그램을 보내기 전에, 데이터 그램 경로를 위한 가상 연결 경로를 설정해야 함
- GPT : 이 경로는 데이터 전송 세션 동안 유지됩니다.
- 연결 설정 이후, 데이터그램은 동일 경로로 전달
- 데이터그램의 도착 순서도 유지됨
- 이런 유형의 서비스에서는, 패킷은 SA/DA 뿐만 아니라, 패킷이 흐르는 가상 회선을 정의하는 가상 회선 식별자(VCI)인 흐름 레이블이 필요함
가상회선 방식에서 라우터의 Forwarding process
- 라우터는 Label이 지정된 Packet을 수신하고, Forwarding table을 조회한다
- 이 테이블은 Incoming label, Outgoing label, 출력 Port 등의 매핑 정보를 포함
- label의 수가 적으면 access 속도가 빨라진다
- 이 테이블은 Incoming label, Outgoing label, 출력 Port 등의 매핑 정보를 포함
- 포워딩 테이블에서 적절한 매핑을 찾으면, 라우터는 패킷의 기존 입력 레이블을 새로운 출력 레이블로 교체한다
- 이 과정에서 패킷의 레이블은 목적지 또는 다음 홉으로의 전송을 위해 업데이트됨
- 레이블이 교체된 패킷은 결정된 출력 인터페이스를 통해 다음 라우터로 전송되고, 다음 라우터에서도 같은 과정이 반복된다
- 가상회선이 많지 않으면 Label을 고정하기도 함
- Label을 변경하면서 사용하면 가상회선의 개수가 증가함
- 데이터의 전송 확인을 위해 확인 응답(acknowledgements)을 보냄
네트워크 계층 성능
- 네트워크의 성능은 지연(delay), 수율(throughput), 그리고 패킷 손실(loss)로 측정
- 혼잡제어(체증제어)는 성능을 개선하는 큰 이슈
- jitter : 패킷 간의 지연 시간 차이가 얼마나 변동하는지를 의미
지연
- 전송(Transmission) 지연 : 패킷을 보내는데 걸리는 시간
- 패킷길이 / 전송속도
- 전파(Propagation) 지연 : 신호가 목적지까지 가는 시간
- 거리 / 전파속도(20만km/초)
- 처리(Processing) 지연 : 라우터와 목적지에서 처리시간
- 큐잉(Queuing) 지연 : 입력 또는 출력 큐에서 전송이나 처리를 기다리는 데 걸리는 시간
Throughput(수율)
- 네트워크 한 지점에서 throughput은
- 그 지점을 초당 통과하는 비트 수
- 그 지점에서의 전송 속도보다 낮은 값임
- 에러나는 경우 줄어듬
- 여러 링크를 거치는 경우 최소 Bandwidth 값 이하로 됨
패킷 손실(packet loss)
- Input 버퍼의 크기는 유한
- 버퍼가 꽉 차면 이후의 패킷은 버려짐(overflow)
- 버려지면 재전송을 해야 하는데, 이 경우 상황이 더 악화될 수 있다
- TCP의 경우 End to End에서 Packet 수신이 안된 경우 재전송을 해야 함
- End user간 신뢰성 있는 정보 전달
- TCP의 경우 End to End에서 Packet 수신이 안된 경우 재전송을 해야 함
혼잡 제어(Congestion control)
- 인터넷 모델에서 네트워크 계층에서의 혼잡(제어)은 명확히 정의되지 않음
- 네트워크 계층 혼잡 이슈 : Throughput, Delay
- 혼잡 제어 방식
- Open-loop 혼잡 제어(사전 예방)
- 송신자/수신자가 혼잡 제어
- Closed-loop 혼잡 제어(발생 후 제거)
- 상호 교신을 통한 제어
- Open-loop 혼잡 제어(사전 예방)
- Load(부하)에 따른 Delay 그래프 해석
- No-congestion area : 네트워크 부하가 낮을 때
- GPT : Queing Delay는 거의 없거나 전혀 없고, 전파 지연과 처리 지연만 존재
- Congestion area : 부하가 증가함에 따라 네트워크의 용량에 근접하거나 이를 초과할 때
- 이때 지연은 급격하게 증가함
GPT : 네트워크가 포화 상태에 이르러 패킷이 처리되거나 전송되기 위해 큐에서 대기하는 시간(큐잉 지연)이 증가하기 때문
- No-congestion area : 네트워크 부하가 낮을 때
- Load(부하)에 따른 Throughput 그래프 해석
- No-congestion area : 네트워크 부하가 낮을 때
- GPT : 부하가 낮을 때, 네트워크의 수율은 부하와 거의 선형적인 관계를 보임(load가 증가함에 따라 수율도 증가함)
- Congestion area : 부하가 증가함에 따라 네트워크의 용량에 근접하거나 이를 초과할 때
- GPT : 특정 지점(임계점)을 넘어서면, 수율이 더 이상 선형적으로 증가하지 않고 최대 용량에 도달한 후 감소하기 시작함
- GPT : 처리할 수 있는 패킷의 수는 줄어들고, 대신 패킷은 큐에 머무르게 됩니다. 이로 인해 일부 패킷은 버려질 수도 있다
- No-congestion area : 네트워크 부하가 낮을 때
Open-loop 혼잡 제어
- 송신자/수신자가 혼잡 제어
- GPT : 혼잡이 발생하기 전에 미리 정책을 수립하고 적용하는 방법
- 재전송 정책
- 재전송은 혼잡을 더 심하게 만듬. 재전송 정책과 재전송 타이머를 효과적으로 조절해야 함
- 윈도우 정책
- Selective-repeat(버린 것만 다시 보냄)가 Go-Back-N(에러 이후 전부 재전송) 보다 효과적
- 확인응답 정책
- 확인응답을 데이터와 같이 보내거나, 하나로 여러 패킷 확인응답
- 버림 정책
- 혼잡 발생 초기에 패킷을 버리면 혼잡 발생 예방 가능
- 수락 정책
- 가상회선 방식에서 활성 회선 수를 제한
Closed-Loop 혼잡 제어
- 상호 교신을 통한 제어
- GPT : 혼잡이 발생한 후에 그 상황을 감지하고 대응하는 방법
- 아래 Backpressure나 Choke packet의 경우 라우터에서 잘 사용하지 않음(connectionless)
- Backpressure
- 혼잡 발생 시 이전 노드들에게 보내지 말도록 요구
- 데이터그램 네트워크에서는 안 됨(Connectionless)
- Choke packet
- 혼잡 발생 시 소스 노드에게 직접 보내지 말도록 요구
- ICMP 같은 특수 패킷을 따로 만들어 보내는 방식
- 암시적 시그널링
- 확인 응답이 늦게오면 혼잡임을 암시적으로 감지하고 트래픽량을 줄임
- TCP 혼잡제어 방식
- 명시적 시그널링
- 혼잡노드에서 소스나 목적지에게 직접 신호를 보내는 방식(명시적)
- 패킷 내의 특정필드에 혼잡임을 표시하여 알리는 방식
- TCP/IP의 경우 Best-Effort 방식(노력은 하지만, 결과는 보장하지 않음) 서비스임
- 헤더가 깨졌는지, 목적지 주소가 존재하는지는 판단 및 처리는 하지만, 재전송 처리는 하지 않음
'Computer Science > 네트워크' 카테고리의 다른 글
[컴퓨터네트워크] 03. Network Layer Protocols(1) - 네트워크 계층 프로토콜 (0) | 2024.04.10 |
---|---|
[컴퓨터네트워크] 02. (4)Network Layer(네트워크 계층) - IP 패킷의 포워딩 (0) | 2024.04.07 |
[컴퓨터네트워크] 02. (3)Network Layer(네트워크 계층) - DHCP, NAT (0) | 2024.04.07 |
[컴퓨터네트워크] 02. (2)Network Layer(네트워크 계층) - IPv4 주소 (0) | 2024.04.07 |
[컴퓨터네트워크] 01. OSI 7계층과 TCP/IP (0) | 2024.04.07 |