HJW's IT Blog

Computer Network: 10주차 본문

컴퓨터 네트워크

Computer Network: 10주차

kiki1875 2023. 5. 20. 18:08

IPv4 Address Exhaustion

         > IPv4의 주소는 거의 다 소진됨

         > 해결방안 : 

                 >> DHCP(Dynmic Host Configuration Protocol)

                 >> NAT(Network Address Translation)

                 >> IPv6(IP version 6)


DHCP: Dynamic Host Configuration Protocol

         > 목표: Host 들이 네트워크 접속시 동적으로 IP를 할당 받을 수 있도록

                 >> 사용중인 주소 renew 가능

                 >> Connected 된 동안만 주소를 hold --> reusable

                 >> 동작방식은 다음과 같다

                         <호스트가 "DHCP discover" 을 알린다>

                         <DHCP 서버가 "DHCP offer" 으로 응답>

                         <호스트가 IP 주소 요청: DHCP request>

                          <DHCP 서버가 주소를 보내줌: DHCP ack>

DHCP Example

                 >> DHCP 는 IP 주소 이외에도 다음 사항들을 반환 가능

                         >> 클라이언트의 first hop router address

                         >> DNS 서버의 이름과 IP 주소

                         >> Network Mask (주소의 네트워크 부분과 호스트 부분을 나타낸다)

 

                 <DHCP Example>

                         1. 가정: 노트북을 연결하려 한다

                         2. 연결시 필요한 정보는: IP 주소, first-hop router주소, DNS 서버 주소

                         3. 암호화된 DHCP 요청을 UDP로 요청

                         4. LAN 에서 이더넷 프레임은 브로드캐스트 되고 DHCP 서버를 실행 중인 라우터에서 수신된다

                         5. 이더텟은 IP 로 디 멀티플랙싱 되고, UDP 는 DHCP로 디멀디플랙싱이 된다.

                         6. DHCP 서버는 DHCP ACK을 생성 -> IP 주소, first-hop router 주소, DNS 서버주소 내용이 담겨 있음

                         7. DHCP 서버의 캡슐화 완료, 프레임은 클라이언트로 전달, 클라이언트에서 DHCP 로 디 멀티플랙싱

 


NAT: Network Address Translation

         > 로컬 네트워크를 떠나는 모든 datagram들은 모두 같은 NAT IP 주소를 가지고 있다. 포트 넘버가 다르다.

         > Motivation: Local Network 는 하나의 IP 주소를 사용

                 >> ISP 를 위해 IP의 범위 필요 x, 모든 장비들에게 하나의 IP 주소 할당

                 >> 바깥에 알리지 않고 주소를 바꿀 수 있음

                 >> ISP를 로컬 네트워크의 장비들의 주소를 바꾸지 않고 바꿀 수 있음

                 >> 로컬 네트워크 내에 있는 장비들은 바깥에서 콕 찝을 수 없다.

         > Implementation: NAT 라우터는 다음 사항들을 수행해야 한다

                 >> 송신되는 datagram:(source IP 주소, 포트 #) 를 (NAT IP 주소, new 포트 #) 로 replace. 멀리있는 client/server는 (NAT IP 주소, new port #) 를 사용해 목적지로 도달

                 >> 모든 (source IP 주소, 포트 #) & (NAT IP 주소, new 포트 #) 짝을 기억한다

                 >> 수신되는 datagram: dest field 내에 있는 (NAT IP 주소, new 포트 #) 를 알맞는 짝과 바꾼다.

 

        > NAT 는 16-bit port # field를 가진다.

        > 논란이 있는 기술이다.

        > 라우터는 레이어 3 까지만 처리해야 한다

         > 주소 부족은 IPv6 로 처리되어야 한다

         > end-end 원칙을 위반한다

        > 클라이언트가 NAT 뒤에 있는 서버에 연결하려면??         PortForwarding

 

 


IPv6

        > IPv6는 왜 만들어 졌는가?

                >> 32-bit 주소공간이 곧 소진된다

                >> Header format 이 네트워크 의 프로세싱, 포워딩을 향상시킨다

                >> IPv6 datagram 은 고정길이 40 byte 의 header 를 가지고 있으며 fragmentation 이 불가능 하다

                

IPv6 Datagram Format

                        >> PRI: 전송되는 datagram들 중 우선순위

                        >> Flow Lable: 패킷의 흐름을 구분하기 위해        

                        >> Next Header: 상위 계층 프로토콜을 구분한다

                        >> No Checksum

                        >> Fragmentation: src/dest 노드에서만 가능하다

        > 모든 라우터가 동시에 upgrade 될 수 없다.

                >> No Flag Days

                >> 그렇다면 IPv4 와 IPv6를 어떻게 동시에 사용할까?

                        >>> Tunneling: IPv6 datagram들이 payload 로써 IPv4 datagram 에 실려 전송

Tunneling

                > IPv6 가 모두 적용되기에는 오랜 시간이 걸린다.


ICMP: Internet Control Message Protocol

        > 호스트와 라우터가 network-level 정보를 통신하기 위해 사용한다

                >> 도달할 수 없는 호스트, 네트워크, 포트, 프로토콜 

                >>  Echo request, reply

        > ICMP 메세지는 IP datagram에 들어있다

        > ICMP msg: type, code + first 8 bytes of IP datagram causing error

        

Traceroute and ICMP

        > Source 가 Dest로 여러 UDP segment 들을 보낸다 ( 첫번째: TTL =  1, 두번째 : TTL = 2 ...)

        > n 번째 datagram 이 n번째 라우터에 도착하면 라우터는 datagram 을 버리고 ICMP msg를 보낸다

        > ICMP msg는 라우터의 이름과 IP 주소를 보유

        > ICMP msg가 오면 sorce는 RTT를 기록

        > UDP segment가 결국 dest host 에 도착 -> Dest 가 "port unreachable" ICMP 를 반환 -> source stops

 

'컴퓨터 네트워크' 카테고리의 다른 글

Computer Network: 12주차  (0) 2023.05.24
Computer Network: 11주차  (0) 2023.05.21
Computer Network: 9주  (0) 2023.05.19
Chapter 4.5: Routing Algorithm  (0) 2023.05.16
Connection Oriented Transport: TCP  (0) 2023.04.17