Network 기본 개념 - IP (Internet Protocol)

2 minute read

IP

공개적으로 유일한 네트워크 주소로 특정 서버와 연결하기 위해서 사용되는 프로토콜

Network mask

  • 특정 네트워크 주소만을 빠르게 획득하기 위해 /XX 에 해당하는 앞에 있는 비트만큼 and 연산을 통해서 획득
  • 특정 IP로 이동하기 위해서 이 네트워크로 이동을 하기 위해서 이 방법 선택
  • 실제 도착을 진행한 후 거기서 뒤에 있는 host를 보고 어떤 컴퓨터인지 확인함

Class & Classless

  • 실제 네트워크를 a, b, c class라는 형식으로 네트워크를 제공함
  • 하지만 너무 많은 양의 IP 주소를 할당받아야되는 문제가 존재하여서 classless하게 IP를 사용할 수 있도록 가능해짐
  • /XX 를 통해서 실제 어디까지 네트워크 주소인지 확인할 수 있고 그 뒤에 있는 정보를 통해 그 네트워크 안에 어떤 컴퓨터인지 확인할 수 있음.

NAT

Private 네트워크와 밖에 있는 네트워크와 연결하기 위한 장치

NAT를 통해서 밖으로 나가는 경우 테이블이 존재하여 거기에 현재 사설망에 어떤 컴퓨터인지 정보와 port 번호가 매핑되어져서 밖으로 나감

실제 데이터는 NAT로 돌아올 때 해당 정보와 port 번호를 확인해서 실제 사설망에 있는 컴퓨터와 데이터 통신 가능

Routing table

  • 현재 라우터에서 네트워크 주소와 다음으로 어떤 라우터로 이동해야되는지에 대한 정보가 있음
  • 가장 중요한 것은 세밀하게 작성된 /XX 에서 값이 큰 것부터 읽어나가는 것이 중요함

loopback address

자기 자신으로 돌아오는 IP 주소

127.x.y.z

Private network

공개적으로 사용되는 IP는 모두 유일하지만 사설 network같은 경우 유일하지 않고 중복될 수 있다.

  • 10.0.0.0/8
  • 192.168.0.0/16
  • 172.16.0.0/12

Network layer

Datagram (IP packet)은 분리되어 질 수 있다.

  • 원인
    • 실제 데이터를 보내는데 있어서 MTU보다 더 큰 패킷을 실제 물리적으로 전송하기 어렵기에 IP 패킷을 짤라서 보냄
  • 짤라진 데이터에 대해서 패킷에서 짤라진 것인지. 마지막인 것인지에 대한 정보를 작성함

  • 문제점
    • 모두 짤라진 IP 패킷에 모두 IP 헤더를 붙여야되기 때문에 실제로 데이터가 더 많이 전송되는 문제 발생
    • 데이터가 없어진 경우 loss된 경우에 대하여 매우 취약함
      • TCP 같은 경우 손실된 경우 재전송을 요구하는데 IP 패킷은 그런 것이 존재하지 않아 TCP 패킷에 대하여 재 전송을 요청함. 그러기 때문에 IP 패킷이 또 손실되는 가능성이 높음.
  • 해결법
    • 처음 연결과정에서 MTU를 알아내고 그것을 통해서 MSS를 설정하여서 IP 패킷이 나눠지지 않도록 설정함.

Two-node instability

서로 경로에 대한 정보를 교환하는 과정에서 서로 무한으로 데이터를 교환하면서 문제가 발생

  • 데이터 교환하는 트리거
    • 해당 라우팅 테이블이 수정된 경우
    • 타이머에 의해서 일정시간이 지나서
  • X, A, B 순서대로 연결
  • X - A 가 연결이 끊킴
  • 그 사이에 B가 A에게 자신의 정보를 전달함
  • A는 그 정보를 최신으로 받아들이고 서로 루프가 생김
  • 서로 완전히 믿을 수 없는 상황과 네트워크 상황이 좋지 않게 만듬

  • 해결 방법
    • 서로 정보를 교환하는 것을 카운팅하여 제한
    • 혹은 만약 업데이트하려고 하는 대상에 대한 경로에 그 대상이 존재하는 경우 정보를 보내지 않음

3-node instability

3개의 노드가 서로 영향을 주며 업데이트하는 현상

여기서 A라는 친구가 연결되어있는게 끊킨 상태에서 지속적으로 3개의 노드가 루프를 만듬

해결방법은 빠르게 캐치하여서 그 라우터들을 재부팅하여 끊어버린다.

Leave a comment