[네트워크] 04. WAN 통신

ppmyor·2022년 9월 14일
0

CS-네트워크

목록 보기
4/11
post-thumbnail

3계층의 기능

3계층에서 하는 일

서로 다른 LAN을 연결시켜주는 것이 3계층의 역할이며 LAN과 LAN을 연결시켜주는 역할을 하기 위해서는 router 등의 장비가 필요함.
멀리 떨어진 곳에 존재하는 네트워크까지 어떻게 데이터를 전달할지 제어하는 일을 담당 -> 발신에서 착신까지의 패킷의 경로를 제어.

3계층에서 쓰는 주소

WAN에서 통신할 때 사용하는 IP 주소.
멀리 있는 네트워크 대역과 통신하기 위해서는 MAC 주소 뿐만 아니라 IP 주소도 가지고 있어야 한다.
멀리있는 곳과 통신할 때 IP주소만 있는 것이 아니라 서브넷 마스크, 게이트웨이 등이 추가적으로 필요함.

  • IPv4 주소: 현재 PC에 할당된 IP 주소
  • 서브넷 마스크: IP 주소에 대한 네트워크의 대역을 규정하는 것
  • 게이트웨이 주소: 외부와 통신할 때 사용하는 네트워크의 출입구

3계층 프로토콜

  • IP주소를 이용해 MAC주소를 알아오는 ARP 프로토콜
  • WAN에서 통신할 때 사용하는 IPv4 프로토콜
  • 서로가 통신되는지 확인할 때 사용하는 ICMP 프로토콜

IP

  • IP(Internet Protocol): HOST에 대한 식별자

IPv4와 IPv6

IPv4와 IPv6의 가장 큰 차이는 주소 길이 다. IPv4 같은 경우는 32bit의 주소 체계를 사용하기 때문에 나올 수 있는 경우의 수는 2^32이고(대략 43억개..), IPv6 같은 경우는 128bit의 주소 체계를 사용하기 때문에 나올 수 있는 경우의 수는 2^128이다.

IP의 구조

IP주소는 8bit씩 끊어서 표시

192.168.60.14

각각의 값의 범위: 0 ~ 255 -> 2^8 즉, 8bit
8bit가 4개이므로 32bit

IPv4의 주소는 NetworkID와 HostID로 나뉜다.
IP주소에서 Network ID 길이가 얼마인지 나타내는게 Netmask(서브넷 마스크)

서브넷 마스크가 255.255.255.0이라고 할 때, IP와 서브넷 마스크를 AND 연산을 해준다.
0과 AND 연산을 하면 결과는 0이므로 AND 연산을 했을 때 결과는 192.168.60.0 이다.
여기서 0을 제외한 앞의 값이 Network ID이고 이하의 값이 HostID이다.

CIDR 로 A.B.C.D/N (192.168.60.14/24) 이렇게 표기를 하기도 하며, NetworkID가 Nbit 인것을 명시적으로 표시하고 아래의 값은 HostID임을 알려준다.

IP Header format


출처

  • version: IPv4인지 IPv6인지 나눈다. 다만, IPv4와 IPv6 프로토콜 헤더의 모양새가 완전히 다르다.
  • IHL: Internet Header Length: 보통은 5이다. (5 * 4byte(32bit) = 20byte(Header의 길이)) 만약 option이 있다면 더 길어질 수 있음.
  • TOS(Type of Service)
  • TTL(Time To Live): router를 지나갈 때 마다 TTL 이 1씩 감소(2^8 = 255) 255번 지나고 나면 TTL의 값이 0이 되는데, 이 때는 router가 패킷을 버려버림.
  • protocol: 4계층의 헤더 값을 가리킴
  • Header checksum: 전송간의 오류가 있는지 없는지 확인
  • Source address
  • Destination address

일반적인 IP 주소

Classful IP주소

Class 별로 IP주소를 나눠서 사용함. -> 사용할 수 있는 범위가 정해짐
IP주소는 10진수 4byte로 구성 (0 ~ 255)

  • A 클래스의 첫번째 필드만 네트워크 대역을 구분.
    그 이후 필드는 각개의 PC를 구분.
    0. 0.0.0 ~ 127. 255.255.255

  • B 클래스는 두번째 필드까지 네트워크 대역을 구분.
    그 이후 필드는 각개의 PC를 구분.
    128.0. 0.0 ~ 191.255. 255.255

  • C 클래스는 세번째 필드까지 네트워크 대역을 구분.
    마지막 필드는 각개의 PC를 구분.
    192.0.0. 0 ~ 191.255.255. 255

  • D 클래스는 멀티캐스트를 위해 남겨둔 주소

  • E 클래스는 연구용으로 남겨둔 IP 주소

클래스별로 맞게 쓰니까 낭비되는 IP 주소가 많았음.

ClassFulless

하나의 큰 네트워크를 여러개의 작은 네트워크로 쪼개서 사용.
서브넷 마스크를 도입.

  • 어디까지가 네트워크 대역을 구분하는 곳이고 그 이후 필드는 네트워크 대역에 속해있는 PC들(호스트)을 구분하는 값인지 지정.
  • 2진수로 표기했을 때 1로 시작하고, 1과 1 사이에는 0이 올 수 없다는 규칙이 있다. 즉, 연속된 1로 구성되어있으며, 0이 한번 나오면 그 뒤는 전부 0이어야함.
  • 1과 0이 바뀌는 그 시점이 네트워크 대역을 구분하는 지점과, PC를 구분하는 지점으로 나뉨.
  • 서브넷 마스크를 이용해서 하나의 큰 네트워크 대역을 잘게 쪼개는 것을 서브넷팅(subneting) 이라고 함
  • 쪼개진 네트워크 대역을 하나로 합치는 것을 슈퍼넷팅(superneting) 이라고 함
  • 낭비되지 않도록 아껴쓰는 Classless IP 주소

사설 IP와 공인 IP

IP가 점점 부족해지기 시작하면서 IPv4에서 IPv6(16byte)로 넘어가는 추세이지만 바로 넘어갈수는 없음 -> 사설 IP와 공인 IP의 도입

  • 공인 IP: 인터넷(네트워크 통신망)과 통신할 때 사용하는 IP 주소
    공인 IP 1개당 2^32개의 사설 IP
  • 사설 IP: 같은 네트워크 대역에서 사용하는 IP 주소

사설 IP를 사용하고 있는 장비들이 통신을 할 때 무조건 공인 IP로 바꾸어서 인터넷과 통신
즉, 다른 네트워크 대역으로 갈 때 사설 IP에서 공인 IP로 바뀌어서 감. 같은 네트워크 대역에서는 사설 IP를 사용하고 외부로 나갈 때는 하나의 공인 IP만을 사용.

외부에서 볼 때는 컴퓨터 간 구분이 불가하지만 공인 IP에서 사설 IP로 보내주는 과정에서 각각의 컴퓨터를 파악하여 요청한 곳에 알맞게 갖다줌.

  • 내부의 요청 -> 사설 IP에서 공인 IP로 바뀜 -> 외부
  • 외부에서 보내줌 -> 공인 IP가 공유기로 보내준 다음 사설 IP로 바뀜 -> 내부
    여기서, 사설 IP에서 공인 IP로 바꾸어주는것을 NAT(Network Adrress Transmision) 라고 함. (사설 IP에서 공인 IP로 바꾸는 것에 한정된 것이 아닌 특정 IP에서 특정 IP로 바꾸어주는 모든 개념을 통칭)

외부에서 통신 할 때는 무조건 공인 IP로만 통신하기 때문에, 외부에서 볼 때는 사설 네트워크 대역이 없는 것 처럼 보임.
나갈 때도 공인 IP로만 통신하고 들어올 때도 공인 IP로 보내준 다음 공유기 등의 router가 내부적인 처리를 통해 요청한 PC로 값을 보내줌.
-> 내부 네트워크 대역에서 외부로 나갈 때 어떤 요청을 했는지 기록(NAT table)한 다음, 그에 대한 응답이 왔을 때 NAT table을 보고 그 대상에게 전달
-> 나간 적이 없는(NAT table에 기록되지 않은) 패킷이 응답으로 들어온다면 내부에 전달하지 않고 그냥 router가 받고 끝냄

일반적으로 서버는 공인 IP를 사용(포트포워딩 설정을 해주어야만 외부에서 내부로 들어올 수 있다.)
공인 IP 하나 당 사설의 네트워크 대역이 따로 생긴 것이기 때문에 IP 부족 현상이 많이 해소됨.

특수한 IP 주소

0.0.0.0

나머지 모든 IP

127.x.x.x

자기 자신을 나타내는 주소

게이트웨이 주소

  • 일반적으로 공유기의 IP
  • 사설 IP 에서 외부로 나갈 때 무조건 공유기를 통해서 나가는데 외부 세상으로 나가는 문 같은 개념
  • IP 주소와 서브넷 마스크는 나를 식별하기 위한 주소이고 게이트웨이는 외부 세상으로 나가기 위해 거쳐야하는 곳.
  • 네트워크 대역에서 쓸 수 있는 IP 중에 가장 작거나, 가장 큰 IP를 사용

추가

router

패킷 단위의 데이터가 router에 도착하면 경로 선택 switching을 하는데, 그 중 최적화된 경로를 통해 목적지에 간다. 그 때 이정표 역할처럼 근거가 되는 것이 routing table이다.
routing table을 기준으로 의사결정을 한다.

인터넷은 Router의 집합체이며, Router는 L3 스위칭을 한다.
네트워크 인터페이스가 N개인 Router가 있다면, 정보가 도착하면 도착한 지점으로부터 N-1개 중 하나를 고르는 과정을 Switching이라고 하며, 그 때 가장 효율적인 길로 가려면 어떻게 해야할지를 router들끼리 프로토콜을 가지고 통신하여 경로 산출.

네트워크 인터페이스

route PRINT

네트워크 인터페이스(NIC, 무선 ...)가 여러개일 때 선택하는 것을 switching.
인터페이스를 선택할 때 메트릭(비용)이 적은 것의 경로를 선택하는 등의 기준이 잡혀있음.

서브넷팅

서브넷팅은 IP 주소 낭비를 방지하기 위해 원본 네트워크를 여러개의 서브넷으로 분리하는 과정을 말한다.

[네트워크] 서브넷, 서브넷마스크, 서브넷팅이란? | 서브넷팅 예제

참고

해당 내용은 [따라學IT] 04. 실제로 컴퓨터끼리는 IP주소를 사용해 데이터를 주고받는다 의 강의와 개인 공부를 함께 정리 한 내용입니다.
추가로, IPv4주소 체계에 대한 암기사항, Switch가 하는 일은 Switching 이다., IP헤더 형식과 의미 요약 의 내용을 정리하였습니다.

profile
유영하는 개발자

0개의 댓글