오늘하루도 우힣ㅎ

CH4. Network Layer(2) 본문

네트워크/강의정리

CH4. Network Layer(2)

우힣 2020. 1. 11. 21:12

- DHCP(Dynamic Host Configyration Protocol)

: 네트워크 자동 설정시 자동으로 네트워크 정보를 받아오는 mechanism을 의미한다.

주소를 재사용할수 있도록 해준다.

  • 다음의 과정을 따르게 된다.
  1. DHCP discover : DHCP server가 어디에 있는지를 발견하는 과정.
  2. DHCP offer : DHCP server에서 client에게 적절한 IP 주소를 제안해주는 과정이다.
  3. DHCP request : DHCP client가 DHCP server에 해당 IP 주소를 쓰겠다고 요청하는 과정
  4. DHCP ACK : DHCP server에서 client의 요청에 응하는 과정.
  5. 이후부터 client는 할당 받은 IP 주소를 사용하게 된다.
  6. IP addr을 받은 후에 그것을 사용할수 있는 시간이 50% 남게 되면 client측은 server로 DHCP request를 보낸다.(server서 반응이 없으면 다시 보낸다.)
  7. server는 DHCP NACK, ACK 중 하나를 보내게 된다.
    • NACK의 경우 server에서 거절을한 경우로 client는 처음부터 다시 모든 과정을 시작한다.
    • ACK의 경우 server에서 계속 사용할수 있도록 한것으로 client는 계속해서 사용을 한다.
  8. 모두 사용을 하게 나면 client는 DHCP Release를 하게 된다.

- Network Address Translation (NAT)

  • 1개의 실제 공인 IP에 다량의 가상의 IP 주소를 할당하게 되는 것이다.
  • 할당된 IP 주소는 local network 내에서는 유니크 하지만 전체적으로는 유니크 하지 않다.
  • IPv4에서 사용할수 있는 대부분의 주소를 사용했지만 아직 IPv4를 쓸수 있는 이유중 하나이다.
  • local network내에서 IP 주소가 바뀌더라도 다른쪽에 알려줄 필요가 없다(자신이 연결된 router로만 알려주면 된다.)
  • 16 bit port number field : 60,000개의 연결이 하나의 공인 주소에 할당이 될수 있게 해준다.

- NAT의 문제점

  • network 통신중에 IP addr이 중간에 바뀌지 않는것을 원칙으로 하지만 이것은 바뀌게 된다.
  • routers는 Layer 3까지만 신경을 쓰면 되지만 이것같은 경우 Layer 4까지(port #)까지 신경을 쓰게 된다.
  • NAT traversla problem
    client가 local network에 있는 server에 접근을하고 싶을때 외부에서는 해당 서버의 IP addr을 알수가 없어 접근이 불가능하다.
    Solution 1 : Statically configure NAT to forward incoming connection requests at given port to server
    : 강제적으로 특정 router로 들어오는 특정 port를 server와 맵핑을 시켜두어 무조건 server와 연결이 될수 있도록 하는 방식이다.
    Solution 2 : rleaying
    : relay server : public network에 존재하며 중간에서 매개체 역할을 하게 되는 서버를 의미한다.
    : NATed host(server)에 의해서 relay server와 연결이 되게 된다.
    : client에 의해서 relay server와 연결이 된다.
    : relay server를 통해 client와 server는 통신을 하게 된다.

- ICMP

  • 에러 reporting & 네트워크 상태를 진단하는 메카니즘이다.
    : 에러가 발생하게 되면 ICMP는 단지 에러를 src에 보고를 할뿐 다른 다른 추가적인 일은 하지 않는다.(recovery x)
  • ICMP는 첫번째 fragment에 대해서만 보고한다.(하나만 error가 생겨도 다른 fragment들은 다 버려지기 때문에 다 보고할 필요가 없다.)
  • checksum에 대해서는 ICMP를 src로 전달하지 않는데 그 이유는 checksum에는 src의 IP addr도 더해져있기 때문에 src의 IP addr이 잘못됐을 경우도 있다고 판단을 한다.
  • ICMP 메세지에서 에러가 발생해도 error 메세지는 보내지지 않는다.
ICMP Type Code 설명
0 0 echo reply(to ping)
3 0 destination network unreachable
3 1 destination host unreachable
3 2 destination protocol unreachable
3 3 destination port unreachable
3 4 destination unreachable(datagram too big)
3 6 destination network unknown
3 7 destination host unknown
8 0 echo request
11 0 TTL expired
  • echo request/ reply : 해당 network에 문제가 없는지를 확인하기 위해서 사용이 된다.
    • 이때 reply는 request에서 보낸 데이터를 동일하게 보내야 한다.
  • Destination unreachble : datagram이 제대로 전달이되지 않음을 의미한다.
    • path MTU를 확인하기 위해 사용이 되기도 한다. (type3 code4를 사용한다.)
    • IP header에 Flag 필드를 DF=1로 설정하여 보내어 해당 fragment가 제대로 도착할때까지 MTU 사이즈를 줄이며 성공할때까지 보내게 되는 것이다.
  • Time Expired
    • Reassembly timer나 TTL이 0이 되면 해당 패킷들은 다 버려지게 된다.
    • destination까지 몇개의 홉을 거쳐 가야하는지 계산할때 쓰여지기도 한다.

- IPv6

  • IPv4 (32bit 주소 체계가 곧 다 할당이 될것이다.)
  • header 의 형태를 바꿔서 더 빠르게 forwarding을 할수있다.
  • QoS를 제공하여 줄수 있다.(Traffic class, Flow label 필드를 통해서)
  • 128bit 주소 체계 이다.
  • 고정된 헤더의 길이를 가지고 있다.(40byte)

IPv6의 header의 형태

  • IPv6는 IPv4에서 사용하던 field를 삭제하거나, 새로 만들거나, 이름을 변경시켜 좀 더 간단한 형태를 지니게 됐다.
  • version field 만이같은 이름에 같은 위치를 사용중이다.

- Address Notation

  • Preferred form : Colon-Hexadecimal => 0000:0000:0000:000A:3243:0000:ABCD
  • 0인부분을 한번은 그냥 스킵하고 넘어갈수 있다. => 0000::0000:000A:3243:0000:ABCD(하나만 지우기 가능)
  • 앞부분이 모두 0이라면 모두 생략이 가능하다 => ::000A:3243:0000:ABCD
  • 16bit중 앞부분이 연속적인 0이면 생략이 가능하다. => 0000:0000:0000:A:3243:0000:ABCD
  • IPv4를 위하여 마지막 32bit를 dot-decimal로 표현할수 있도록 했다.

- Transition From IPv4 To IPv6

  • 모든 router들은 한번에 IPv6로 바꿀수는 없기에 IPv4와 IPv6가 동시에 사용될수 있도록 해야한다.
  • header의 앞부분을 통해 각각의 version을 확인하여 동시에 사용할수 있도록 조치를 취한다.
  • Tunelling
    • IPv6로 오는 데이터가 IPv4를 지원하는 router를 만났을때 해당 데이터 자체를 IPv4로 다시 감싸 IPv4 router들을 지나갈수 있도록 하여 준다.(IPv4로 감쌀때 IPv4는 어디까지 보낼지 명시를 해준다.)
    • IPv4에서 다시 IPv6를 지원하는 router를 만나게되면 감싸두었던 IPv6만 꺼내어 다시 전송을 한다.
    • IPv6가 IPv4의 데이터로 들어가게 되는 형식이다.

'네트워크 > 강의정리' 카테고리의 다른 글

CH6. Link Layer and LANs  (0) 2020.01.20
CH5. Network Layer : The Control Plane  (0) 2020.01.14
CH4. Network Layer(1)  (0) 2020.01.08
CH3. Transport Layer(4)  (0) 2020.01.05
CH3. Transport Layer(3)  (0) 2020.01.03
Comments