728x90
반응형
주요 학습 개념
- NAT
- DHCP
- 포워딩 그래프 모델(다익스트라 알고리즘)
NAT (Network Address Translation, 네트워크 주소 변환)
- IPv4 형태의 네트워크에서 네트워크 고갈 문제를 해결하기 위한 방법
- IP 주소의 재사용
- 같은 네트워크 내 사용자들은 같은 IP를 공유한다
- 패킷이 내부에서 외부로 나갈 때는 괜찮지만 돌아올 때 원래의 위치로 돌아오지 못하는 문제가 발생
- 현재 gateway가 패킷이 나갈 때, 돌아올 때의 과정에서 IP를 전환해서 발생하는 문제를 조정하고 있다
- 그러나 NAT를 사용하게 되면 디자인상 문제점과 현실적인 문제점이 발생하게 된다
- 디자인상 문제점 : 라우터는 원래 포워딩, 전달만 하는 역할을 해야 한다. 그러나 NAT에서는 라우터가 IP 주소를 변환해주는 작업을 처리해야 하므로 원래 설계 방식에서 벗어나 있다.
- 현실적인 문제 : IPv4에서 발생하는 문제 - 한정된 IP 자원의 고갈 문제, IPv4가 만들어질 당시(70's)에 고려되지 못한 보안 문제 등
→ 따라서 언젠가는 IPv4에서 발전된 단계(IPv6등)로 변경되어야 할 필요가 있다
DHCP (Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜)\
- 고정 IP를 할당하는 경우, 한 대학 내에서 모든 학생들에게 IP를 배정하는 만큼 비용이 발생하게 된다.
- 그러나 DHCP를 이용한다면 고정 IP에 비해 Address Pool을 자유롭게 사용할 수 있다
- DHCP를 이용하기 위해 DHCP 서버의 도움을 받는다
- DCHP 설정 시나리오
- DHCP discover : 255. 255. 255. 255 부터 시작해서 받을 수 있는 IP까지 내려감
- DHCP offer : DHCP 서버는 배정 가능한 67번 IP를 전송
- DHCP request : 해당 번호의 IP를 수락한다는 의미로 reqeust를 보냄
- DHCP ACK : 요청에 대한 응답
- 네트워크 연결 예시
IP : 192. 168. 1. 47
Mask: 255. 255. 255. 0
Router : 192. 168. 1. 1
DNS : 192. 168. 1. 1
IPv6
- 이미 오래 전에 제안되었으나 지금도(2015년 기준) IPv6로 전환되지 않았다
- 그러나 언젠가 과도기를 거쳐서 넘어갈 것으로 예상된다
- 과도기를 거칠 때 IPv4에서 IPv6로 넘어가는 터널링이 필요할 것이다
Link - State 알고리즘
- 포워딩 : IP가 받은 패킷의 헤더 주소를 보고 패킷을 전송하는 것을 의미한다
- 라우터를 그래프의 노드로 두고 노드 간 전송 비용을 고려해 그래프를 그릴 수 있다
- 클라이언트가 서버와 연결되는, 최소 비용을 갖는 거리를 찾을 때 다익스트라 알고리즘이 사용된다
문제 풀이 및 정리
브로드 캐스트는 무엇인가?
- IP 네트워크에 있는 모든 로컬 네트워크 호스트로 데이터를 전송하는 방식
- 호스트 주소가 전부 1인 경우 브로드캐스트 방식이 사용
- 데이터가 수신될 필요가 없는 호스트들에게도 데이터가 전송되기 때문에 불필요한 충돌이 발생, 자신이 속한 네트워크에 한정한다는 점과 라우터를 경유하지 못하는 단점이 있다.
MTU (Max Transfer Size)
- 네트워크 링크가 한번에 보낼 수 있는 데이터 용량
- 쪼개진 IP 데이터 그램은 최종 목적지에 도달해야 다시 합쳐진다
ICMP (Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)
- 사용자 네트워크가 아니라 패킷을 전송하는 시스템에서 발생하는 문제에 대한 보고서를 전송
- google이라는 서버에 접속하려고 할 때 어느 라우터로 접속하는가
- TTL(Time To Live)을 1로 설정하고 테스트 패킷을 라우터로 보냈을 때, ICMP를 통해 어느 라우터에 전송되었는지 확인을 하고 패킷 전송을 종료 시킬 수 있다. (TTL을 다르게 하면 각 단계에서 통과하는 라우터를 확인할 수 있다)
인터넷에 연결되기 위한 기본적인 정보 네 가지
- IP Address
- Subnet Mask : IP 주소를 나눈 작은 네트워크 조각
- Router Address
- DNS (도메인 이름 시스템) : 사람이 읽을 수 있는 도메인 주소를 IP 주소로 변환
'IT 상식' 카테고리의 다른 글
[파이썬] The Zen of Python (0) | 2022.08.18 |
---|---|
[Python] 부동 소수점, 소수점 연산할 때 주의 사항 (0) | 2022.07.18 |
[Spring] Spring을 배우면 JSP를 배우지 않아도 될까? (0) | 2022.05.04 |
[특강] 2021 전주 ICT 이노베이션 스퀘어 명사 특강_블록체인 (0) | 2021.12.07 |
블록체인 원리에 대한 간단한 설명과 예시 (0) | 2021.12.04 |