일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 정렬
- 자바
- Til
- 데이터베이스
- 그래프
- BinarySearch
- 브루트포스
- 우선순위큐
- Java
- 99클럽
- 완전탐색
- 그리디
- 알고리즘
- 스프링
- 프로그래머스
- DFS
- 스프링 핵심 원리 - 기본편
- BFS
- lower bound
- 백트래킹
- Spring
- 백준
- 네트워크 계층
- 개발자취업
- 코딩테스트준비
- 동적 프로그래밍
- 항해99
- 그래프 이론
- DP
- 트리
- Today
- Total
AtraFelis's Develop Diary
[컴퓨터 네트워크] TCP/IP 네트워크 계층의 서비스 종류 본문
TCP/IP 네트워크 계층의 서비스 종류
네트워크 계층은 총 7가지의 서비스를 제공한다. 이 글에서는 이 7가지 서비스에 대해 정리해보려고 한다.
- 패킷화 (Packetizing)
- 경로지정 (Routing)
- 오류제어 (Error control)
- 흐름제어 (Flow control)
- 혼잡제어 (Congestion control)
- 서비스 품질 (Quality of service : QOS)
- 보안 (Security)
1. 패킷화 Packetizing
패킷(Packet)이란?
네트워크에서 전달되는 형식화된 데이터 단위로 제어 정보(헤더) + 사용자 데이터 (Payload)
로 구성되어 있다.
패킷화(Packetzing)란?
상위 계층(전송 계층 Tranporr Layer)에서 받은 데이터인 페이로드(Payload)를 네트워크 계층에서 패킷화(캡슐화) 한다. 이 패킷은 목적지 네트워크 계층에 도달한 이후에 역캡슐화 하여, 다시금 페이로드로 변환된다.
- 발신지 Source Host
- 수신받은 페이로드에 발신지 주소, 목적지 주소 등의 정보를 포함한 헤더를 추가한 후, 패킷화하여 데이터 링크 계층(Datalink Layer)으로 전달한다.
- 패킷이 너무 커서 분할(단편화)해야 할 경우를 제외하고는 내용을 변경하지 않는다.
- 목적지 Destination Host
- 데이터 링크 계층에서 수신한 패킷을 역캡슐화 한 후 자신의 전송 계층(Transport Layer)로 전달한다.
- 패킷이 분할되어 도착할 경우, 패킷이 다 도착할 때까지 기다리고 다시 조립하여 상위 계층에 전달한다.
즉, 패킷화의 목적은 발신지에서 목적지까지 페이로드를 변경이나 이용 없이 전달하는 것이다.
2. 경로 지정 (Routing)
경로 지정 보다는 영어 그대로 라우팅이라고 더 많이 불린다.
라우팅이란?
발신지에서 목적지까지 적어도 하나 이상의 라우터(Router)가 존재한다. 패킷은 이 라우터를 거쳐서 발신지에서 목적지까지 전송되어야 한다.
이때, 네트워크 계층은 패킷이 발신지에서 목적지까지 갈 수 있도록 하는 가장 좋은 경로를 지정할 책임을 갖는다. 이때 찾은 경로를 라우팅 테이블(Routing Table) 을 만들어 저장한다.
이러한 라우팅 방법 (라우팅 프로토콜)은 RIP, BGP, OSPF가 있으나 이 포스팅에서는 다루지 않는다.
포워딩 (Forwarding)
라우터 안에서 라우팅 테이블을 참조하여 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 일을 말한다.
포워딩 테이블(Forwarding Table) 과 라우팅 테이블은 같은 말이다.
3. 오류 제어 (Error Control)
네트워크 계층에서는 오류 제어는 전체 데이터그램이 아닌, 헤더의 오류를 제어하기 위해 이용된다. 패킷이 단편화 될 때마다 오류를 검사하는 것은 비효율적이기 때문이다.
중요한 오류 제어는 네트워크 계층의 상위 계층인, 전송 계층에서한다.
검사합 (checksum)
오류를 검사하기 위한 오류 검출 코드이다. 이를 이용하여 패킷의 내용이나 헤더가 손상 되었는지 확인한다.
영어 발음 그대로 체크섬이라고 부르기도 한다.
ARQ(Automatic Repeat Request)
에러가 발생할 경우 자동으로 재전송을 요구하는 방법.
- Stop and Wait
- 패킷을 전송하기 전, 전송 측은 수신 측의 ACK(긍정응답) 을 받은 후 데이터를 보낸다. 일정 시간이 지난 timeout이 발생하면 이전 데이터를 재전송한다.
- 간단하고 신뢰성 있는 통신을 위해 사용된다.
- Go Back N
- Stop and Wait 방식과는 달리 일단 패킷을 전송한 후, 수신 측에서 오류가 발생했다는 응답이 오면, 그 시점부터 재전송을 한다.
- 여러 패킷을 동시에 전송할 수 있어서 전송 효율이 높지만, 성공적으로 전송된 데이터까지 재전송해야 하는 단점이 있다.
4. 흐름 제어 (Flow Control)
송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법이다. 만약, 수신자는 자신이 감당할 수 없는 수준의 데이터가 전송된다면(수신 버퍼 오버플로우), 손실되는 패킷들이 발생하게 될 것이다. 이를 제어하기 위한 수단이 흐름제어 기법이다.
이를 발신자에게 피드백을 전송하여 데이터 전송 속도를 조절한다.
Stop and Wait
위의 오류 제어에서 설명한 바 있다.
간단한 방법이나, 전송 효율이 낮다.
Sliding Window
오류 제어에서 설명한 Go Back N 방식이다.
수신 측에서 설정한 버퍼의 크기만큼, 발신 측에서 확인 응답(ACK) 없이 데이터를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절한다.
- 윈도우 : 발신, 수신 측에서 설정한 버퍼의 크기
- 송신 윈도우(awnd) : 송신자가 ACK를 수신 받지 않아도 한 번에 전송할 수 있는 데이터의 양.
- 수신 윈도우(rwnd) : 수신 버퍼 오버플로우가 일어나지 않을 정도로 한 번에 받을 수 있는 데이터 양.
송신 윈도우는 항상 수신 윈도우 보다 그 크기가 작게 설정한다. 이 때문에, 수신자로 하여금 데이터를 연속하여 전송할 수 있게 한다.
효율성을 강조한 방법이다.
5. 혼잡 제어 (Congestion Control)
데이터 전송 속도가 네트워크의 데이터 처리 속도를 초과할 때 발생하는 혼잡을 관리하고 제어하기 위한 방법이다.
혼잡은 네트워크의 일부분에서 발생할 수 있는 데이터 패킷의 누적으로 발생한다. 이러한 패킷의 누적이 계속 발생하게 되면, 네트워크가 혼잡해져 성능을 감소시키고 데이터 전달을 지연시킨다.
흐름제어와 혼잡 제어 사이에 혼동이 좀 있을 수 있는데, 흐름제어는 수신 측의 패킷 수를 제어하는 기법이고 혼잡 제어는 네트워크의 패킷 수를 제어하는 기법이다. (흐름제어 또한 일종의 혼잡 제어 기법이라고 보아도 된다.)
AIMD (Additive Increase / Multiplicative Decrease
합 증가 곱 감소
데이터 전송 속도를 천천히 증가시키는 방식으로, 패킷이 문제 없이 도착하면 수신 윈도우(awnd) 의 크기를 1씩 선형적으로 증가시키며 전송한다. 전송에 실패하면 전송 속도는 한 번에 절반으로 감소시킨다.
- 단점 : 전송 시작 시 윈도우 크기를 1씩 천천히 증가시키기 때문에, 안정적인 통신 속도에 접어들기까지 시간이 꽤 걸린다.
- 장점 : 네트워크의 대역폭을 최대한 활용하면서도 혼잡이 발생했을 때 즉각적인 대응을 할 수 있다.
6 서비스 품질 QOS
한정된 네트워크 용량으로 트래픽을 제어하고 주요 애플리케이션의 성능을 보장하기 위해, 메커니즘이나 기술을 활용하여 좋은 서비스 수준을 제공하는 것을 의미한다.
인터넷의 발달로 멀티미디어 통신과 같은 새로운 응용이 가능해지면서 서비스 품질이 더욱 중요하게 되었고 이런 새로운 기능 등을 지원하기 위해 보다 좋은 서비스 품질을 제공하며 발전했다.
서비스 품질을 결정짓는 요소들
- 대역폭 (Bandwith) : 네트워크에서 데이터를 전송할 수 있는 속도.
- 지연 (Delay) : 데이터가 송신자에게서 수신자에게로 전달되는데 걸리는 시간.
- 지연 변이 (지터, Jiiter) : 정체로 인해 네트워크에서 패킷의 전송 속도가 불규칙해져 패킷이 지연될 수 있다. 이로 인해 패킷이 왜곡될 수 있다.
- 손실 : 패킷 손실로 인해 손되는 데이터의 양.
- 신뢰성 : 데이터가 손실되거나 손상되지 않고 안전하게 전송되는 정도
7. 보안 (Security)
네트워크 계층에서의 보안은 2개의 호스트, 2개의 라우터, 혹은 호스트와 라우터 사이에 적용된다. 원래 네트워크 계층은 보안에 대한 고려 없이 설계 되었으나, 추후에 보안을 향한 관심이 증가하면서 IPSec이라고 불리는 가상의 계층을 만들어 보안을 향상시켰다.
IPSec은 비연결형 서비스를 연결형 서비스로 변경하는 가상의 계층이다.
'Computer Science : CS > 컴퓨터 네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] IPv4의 주소 고갈과 그 해결 방안 (0) | 2024.07.17 |
---|---|
[컴퓨터 네트워크] TCP/IP 5계층 (0) | 2024.07.03 |
[컴퓨터 네트워크] 네트워크 성능 (0) | 2024.04.16 |