생성일: 2021년 10월 16일 오후 5:20
7.1 네트워크층 서비스
Alice와 Bob 사이의 통신 요약도
- 패킷화
- 네트워크층의 첫 번째 의무 (우체국 같은 운반 서비스)
- 근원지의 네트워크층 패킷에서 페이로드의 캡슐화와 목적지에서 네트워크층 패킷으로부터 페이로드의 캡슐을 제거
- 즉, 발신지로부터 목적지까지 변경이나 활용 없이 페이로드를 운반 하는것이 임무
- 라우팅
- 발신지에서 목적지로 네트워크층 패킷을 라우팅
- 가능 경로들 중에서 가장 좋은 것을 찾는 책임
- 오류제어
- 네트워크 계층에서 구현 가능, But 네트워크 계층에서 전달되는 데이터에 대해 오류제어 문제 무시. Why? 라우터에서 패킷이 파편화되어 네트워크 계층에서 오류검사는 비효율적
- 흐름제어
- 소스가 수신자의 능력을 초과하지 않고 보낼 수 있는 데이터의 양을 조절
- 이를 위해 수신자는 발신자에게 데이터가 너무 많다는 것을 알리기 위해 피드백을 보낸다
- 혼잡제어
- 인터넷에 너무 낳은 데이터그램이 존재하는 상황에서 혼잡(congestion) 발생
- 송신 컴퓨터에서 보낸 데이터그램의 수가 네트워크 또는 라우터의 용량을 초과하면 혼잡 발생 가능
- 인터넷 서비스 품질 (Qos)
- 멀티미디어 통신(오디오 등) 증가에 따라 더 중요해짐
- 그러나 네트워크 계층은 변경 X ⇒ 상위 계층에서 구현
- 보안
- 비연결형 네트워크 계층에 대한 보안을 제공하기 위해 비연결 서비스를 연결 지향 서비스로 변경하는 또다른 가상 수준(virtual level)이 필요 ⇒ 이것을 IPSec이라 함
7.2 패킷 교환(Packet Switching)
- 데이터그램 방식: 비연결형 서비스
- 가상회선 방식: 연결지향형 서비스
지연(delay), 처리량(throughput), 패킷 손실률(packet loss)로 측정 가능
혼잡 제어는 성능을 향상 시킬 수 있는 이슈
- 지연(Delay) ⭐⭐
- 패킷이 목적지까지 전송될 때 필연적으로 지연 발생
- 전송 지연, 전파 지연, 처리 지연, 큐 내부의 지연 ⇒ 총 4가지 지연
- 전송 지연 (Transmission Delay)
- 소스 호스트 또는 라우터는 즉시 패킷을 보낼 수 없다.
- 패킷의 비트를 전송선에 하나 씩 넣어야 함
- 전송 지연 = (마지막 비트가 전송선에 놓인 시간) - (첫 비트가 전송선에 놓인 시간)
- Delaytr=(PacketLength)/(TransmissionRate)
- 전파 지연 (Propagation Delay)
- A 지점에서 B 지점으로 비트가 이동하는데 걸리는 시간
- 전파 속도에 따라 달라짐 (진공에서는 빠르다)
- Delaypg=(Distance)/(PropagationSpeed)
-
처리 지연 (Processing Delay)
- 라우터 또는 목적지 호스트가 입력 포트에서 패킷을 수신하고 헤더를 제거하고 오류 탐지 절차를 수행하고 패킷을 출력 포트로 전달하는데 필요한 시간
- Delaypr= Time required to process a packet
-
큐잉 지연 (Queuing Delay)
- 대기열(Queuing) 지연은 일반적으로 라우터에서 발생
- 라우터에는 입력 큐, 출력 큐가 있다
- Delayqu= Time a packet waits in input and output queues in a router
- 총 지연 (Total Delay)⭐⭐
- 발신자, 라우터 및 수신자에 대해 동일한 지연이 있다고 가정
- 전체 경로에서 라우터의 수 n을 알면 패킷이 만나는 총 지연을 계산 가능
💡 Total Delay = (n + 1) (delaytr+delaypg+delaypr ) + (n) (delayqu)
7.4 IPv4 주소
- 인터넷에서 각 장치의 연결을 식별하기 위해 TCP/IP 프로토콜 그룸의 IP 계층에서 사용되는 식별자는 인터넷 주소 또는 IP주소라고 한다.
- 32비트 주소
- 장치가 다른 네트워크로 이동시 변경 됨 ⇒ 라우터나 호스트가 아닌 연결의 주소
- 주소방식
- 주소 공간을 가진다
- 주소 공간 = 프로토콜에서 사용 가능한 전체 주소의 수
- n 비트를 사용한다면 주소공간은 2n
- 주소지정 계층적인 주소 지정
- 클래스 기반 주소지정
- 전체 주소 공간은 5개의 클래스로 구분 (A to E)
- 클래스없는 주소지정
- 클래스 기반 주소지정에서 주소 고갈문제 해결 못함
- 더 큰 주소 공간 필요성 ⇒ 클래스 없는 주소 지정 방식
- 슬래시 표기법 : 슬래시 뒤의 숫자는 해당 IP주소의 비트 수 (prefix)
- 접두사의 길이 = 32 - a (a는 주소에 필요한 공간)
- 서브네팅(subnetting)
- 서브네팅을 사용하여 더 많은 계층을 만들 수 있다.
- 기관에 할당된 전체 주소의 수를 N, 접두사의 길이를 n, 각 서브넷에 할당된 주소의 수를 Nsub, 각 서브넷의 접두사의 길이를 nsub로 가정
- 각 서브넷의 주소의 수는 2의 제곱승
- nsub=32−long2Nsub
- 각 서브넷의 첫 주소는 서브네트워크의 주소 수로 나눌 수 있어야 한다. ⇒ 더 큰 서브네트워크에 주소를 먼저 할당
- 주소 집단화 Block 1~4에서 0부터 255까지 256개의 주소 할당됨 ⇒ nsub=32−log2256=24
- 데이터그램 형식
-
IP가 사용하는 패킷을 데이터그램(datagram)이라 함
-
데이터그램은 가변 길이의 패킷으로 헤더와 페이로드(데이터)로 이루어져 있다.
-
헤더는 20~60 바이트 길이, 라우팅과 전송에 필수적인 정보를 가지고 있다. (고정부분은 20 바이트)
-
TCP/IP 에서는 헤더를 4바이트 부분으로 표현
-
헤더필드 (1)
- 버전 : 4 bits
- 헤더 길이 (HLEN) : 4 bits
- Length of data = total length - (HLEN) x 4 바이트
- 서비스 유형 : 8 bits
- 전체 길이 : 16 bits
-
헤더필드 (2)
- 식별자 : 16 bits
- 플래그 : 3 bits
- D : Do not fragment (1)
- M : More fragment (0) ⇒ 0 이면 더이상의 단편이 없다는 의미
-
헤더필드 (3)
- 단편화 오프셋 : 13 bits
- 수명 : 8 bits
- 프로토콜 : 8 bits
-
헤더필드 (3)
- 헤더 검사합 : 16 bits
- 근원지 주소 : 32 bits
- 목적지 주소 : 32 bits
- 선택사항
- 패딩 : 32 비트 길이의 배수로 채움
- 페이로드 : 상위 계층으로 부터 사용자 데이터 운반, 8비트 길이의 정수배
- 단편화 (Fragmentation)
- 각 라우터는 수신한 프레임에서 데이터그램을 역캡슐화하고 다른 프레임으로 캡슐화한다.
- MTU (Maximum Transfer Unit)
-
옵션
- IPv4 데이터그램의 헤더는 고정된 부분과 가변 부분 두가지로 구성
- 고정 부분은 20바이트
- 가변 부분은 최대 40바이트(4바이트의 배수)까지 될 수 있는 옵션으로 구성
- 보안
- 3가지 보안 이슈 : 패킷 도청, 패킷 변조, IP 스푸핑
-
ICMPv4
- IPv4 에서 없는 오류 보고, 오류 정정, 호스트와 관리 질의를 위한 매커니즘을 추가
- 메시지
- 질의 메시지
- 에코 요청 및 응답
- 타임스탬프 요청 및 응답
- 주소 마스크 요청 및 응답
- 라우터 독립 및 광고
- 오류 보고 메시지
- 목적지 도달 불가
- Source Quench (끄다)
- 시간 초과
- 매개변수 문제
- 경로 재지정
- ICMP 오류 보고에 대한 중요한 점
- ICMP 오류 메시지는 ICMP 오류 메시지를 가진 데이터그램의 응답으로는 생성되지 않는다.
- ICMP 오류 메시지는 첫 번째 단편이 아닌 단편화된 데이터그램을 위해서는 생성되지 않는다.
- ICMP 오류 메시지는 멀티캐스트 주소를 가진 데이터그램을 위해서는 생성되지 않는다.
- ICMP 오류 메시지는 127.0.0.1이나 0.0.0.0과 같은 특별한 주소를 가진 데이터그램을 위해서는 생성되지 않는다.
- 디버깅 도구
- ICMP는 핑(ping)과 트레이스루트(traceroute) 사용
-
IP 패킷의 포워딩 (Forwarding)
- IP 주소의 역할에 대하여..
- 포워딩은 패킷이 목적지로 향하도록 패킷을 배치하는 것
- 즉, 패킷을 다음 홉으로 전달하는 것을 의미한다.
- 목적지 주소기반 포워딩
- 일반적으로 사용됨
- 포워딩 테이블을 가진 호스트나 라우터 필요
- 레이블 기반 포워딩
- 연결 지향 네트워크에서 사용, 패킷에 부착된 레이블을 기반으로 패킷을 포워딩
7.5 IPv6