목차
네트워크 계층
OSI 7계층, TCP/IP 4계층
응용 계층 | (message) DNS, HTTP 등 응용 프로그램 |
응용 계층 : Application |
표현 계층 | ||
세션 계층 | ||
전송 계층 | (segment) TCP, UDP |
전송 계층 : Transport |
네트워크 계층 | (Packet) IP |
네트워크(인터넷) 계층 |
데이터 링크 계층 | (Frame) MAC Address |
네트워크 접속(링크) 계층 |
물리 계층 | Ethernet, cable, wire | 물리 계층 |
Application, Transport 레이어는 Send와 Receive만 생각하면 Network 레이어는 실질적인 전송을 생각합니다. IP, Router (이하 라우터)는 오직 네트워크만 생각!
네트워크 레이어 프로토콜은 모든 인터넷 장치(호스트, 라우터)에 있는데, 특히 라우터는 오직 IP 헤더만 체크해서 Forwarding과 Routing을 수행합니다.
- Forwarding : 라우터 입력 포트에서 출력 포트로 패킷을 적절히 이동시키는 작업을 말합니다.
forwarding table에서 숫자에 longest address prefix를 사용하며 실제 모든 IP를 넣을수는 없으니 주변 도착지 IP 주소를 0000 0001 **** .... 처럼 기록되어 있습니다. - Routing : 패킷 단위로 Source부터 Destination 까지 경로를 설정하며 네비게이션 역할의 최단거리 알고리즘(다익스트라, 벨만포드 등)을 사용합니다.
IP (Internet Protocol) - 네트워크 간 설정
Subnet (서브넷)
서브넷, 즉 서브네트워크는 말 그대로 네트워크 내부의 네트워크 부분망입니다. 네트워크 성능을 향상시키기 위해 네트워크 관리자가 네트워크 IP 자원을 효율적으로 분리했다 생각할 수 있고 이를 서브네팅이라 합니다. 네트워크 영역과 호스트 영역으로 분할합니다.
특정 서브넷에 어떤 호스트의 IP주소가 192.168.24.1/24라 한다면 뒤 /24는 24개 비트는 네트워크 영역으로 서브넷을 나타내는 비트이고 나머지 8개 비트가 해당 서브넷 내 호스트들을 나타냅니다. 즉 뒤 8개 비트 192.168.24.xxx 로 256개의 IP주소가 사용 가능하고, 그 중 가장 앞인 192.168.24.0은 서브넷을 위한 네트워크 IP, 호스트를 나타내는 비트가 모두 1인 경우를 브로드캐스트 주소라고 하며 미리 예약되어 있습니다.
브로드 캐스트 주소를 사용하여 해당 네트워크에 연결된 전체 호스트에 전달할 수 있으며 이를 브로드캐스팅이라 합니다.
해서 해당 서브넷은 2개를 제외한 나머지 호스트 IP 크기만큼 사용 가능합니다.
IP Addressing
현재는 8*4 32bit 크기의 IPv4를 사용하고 있습니다. 이러면 총 32비트 크기의 IP가 존재할 수 있을텐데 현재는 이미 초과된 상태입니다. 이를 위해 32비트를 128비트 크기에 차세대 인터넷 프로토콜 IPv6가 1995년에 이미 도입되었지만 현재까지도 절대다수는 IPv4가 쓰이는 상태입니다. 그 이유는 1. 선발대로 IPv6에 부족한 인트라를 채우기 싫은점 2. 가상 IP, NAT로 문제를 지금까지는 해결할 수 있기 때문입니다.
NAT : Network Address Translation
일종의 트릭으로 가상 IP를 만듭니다. 즉 공인 IP 주소(인터넷)과 사설 IP주소로 서로 변환하여 쓸 수 있게 하는 기능입니다.주 동작방법은
1. Source는 IP 주소에 Port를 같이 작성해서 보냅니다.(10.0.0.1, 3345)
2. 이를 NAT가 가진 Translation Table에서 LAN side address를 메모하고 그거와 1:1 매칭으로 WAN side address를 선택해서 WAN 주소로 통신을 합니다. (10.0.0.1, 3345) → ( 138.76.29.7, 5001)
3. 돌아오는 패킷에서 5001번으로 오는 Port를 NAT가 적절히 3345 포트로 다시 바꿔서 내부망에 호스트에게 적절히 돌려줍니다.NAT는 IPv4에 근본적인 해결책은 아니라고 하시는데, 전혀 아름답지 못한 방식이라고 합니다. 네트워크는 어떻게 프로토콜에 헤더를 더 콤팩트하게 만드는지에 대한 학문인데 Port번호가 헤더에 추가될 수 밖에 없고, NAT는 네트워크 계층에서 동작하기에 링크 계층에서 할 일인 포트 지정을 본인이 해버리며 NAT 없이는 외부에서 내부망으로 접근할 방법이 없는 등 문제가 있습니다.
DHCP : Dynamic Host Configuration Protocol
Application Layer Protocol(UDP사용)로 host가 IP 주소를 어떻게 줄지에 대한 내용입니다.
host는 IP를 2가지 방법으로 갖는데 본인이 직접 IP를 작성하거나 DHCP 서버가 동적으로 IP주소를 할당해줍니다.
DHCP 서버는 네트워크 안에 연결된 기기를 자동으로 게이트웨이(첫번째 hop라우터 IP주소), DNS 서버, 서브넷 마스크 등을 전달받고 IP주소를 일정 기간 임대해 줍니다.
모든 네트워크는 DHCP가 있고, 공유기(gateway, router 등)은 DHCP 서버입니다.
IPv4 -(Tunneling) - IPv6
위 IP Addressing에서 언급된 것처럼 IPv4에 32비트로는 현재 기기들의 수를 감당할 수 없어 이를 해결하기 위해 128비트를 사용하는 프로토콜을 1995년에 도입했지만 위 NAT와 DHCP 등을 활용해 현재 시스템을 계속 이어가고 있습니다.
IPv6가 존재는 하지만 아직 절대 다수는 IPv4를 사용하고 있는 상황에서 IPv6로 체제변환을 위해 IPv4와 IPv6를 둘 다 사용할 수 있는 라우터를 이용해 Tunneling을 사용합니다.
Tunneling은 IPv4만 사용하는 라우터들과 IPv6만 사용하는 라우터, 둘 다 사용할 수 있는 라우터에서 IPv6 패킷에 IPv4 헤더를 추가해서 전송합니다.
* IPv6 사용률 현황은 https://stats.labs.apnic.net/ipv6 에서 확인 가능하다고 합니다.
'강의 > 컴퓨터네트워크' 카테고리의 다른 글
Link Layer (1) | 2023.12.29 |
---|---|
컴퓨터 네트워크 - Transport Layer (2) | 2023.08.29 |
컴퓨터네트워크 - Application Layer (0) | 2023.06.28 |
Transport Layer - 요약 (0) | 2023.05.03 |
Application Layer - 시험 요약 정리 (0) | 2023.04.20 |