CS/Network
기술면접을 위한 Network 개념정리 04 - IP
8iggy
2021. 9. 25. 23:45
읽기 전
- 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
- 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
- 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.
IP
- IP(Internet Protocol) : 네트워크의 어떤 PC에서 다른 PC로 데이터를 전송하는 역할
- 목적지가 다른 네트워크에 있다면 경로 상의 라우터가 IP 헤더를 참조해 IP 패킷을 전송하는 라우팅을 수행
- IP 주소 : TCP/IP에서 통신 상대 호스트를 식별하기 위한 식별 정보(호스트의 인터페이스에 할당된 주소)
- 유니캐스트 : 한 개의 호스트로 데이터를 전송
- 브로드캐스트 : 같은 네트워크 상의 모든 호스트에게 동일한 데이터를 전송
- 브로드캐스트의 IP범위 : 255.255.255.255
- 멀티캐스트 : 동일 애플리케이션이 동작하는 특정 그룹의 호스트들에 데이터를 전송
- 멀티캐스트 그룹의 호스트가 동일 네트워크에 존재한다고 확언할 수는 없다.
- 멀티캐스트 IP : 224.0.0.0 ~ 239.255.255.255
- 서브넷(subnet) : 작은 네트워크
- 건물의 a동에 해당하는 주소가 서브넷(네트워크부 or 네트워크 주소)
- a동의 b호에 해당하는 주소가 네트워크 인터페이스에 할당된 호스트 주소(호스트부 or 호스트 주소)
- 네트워크부와 호스트부를 합해 IP주소를 만든다.
- IP 주소의 표기 방법/구조
서브넷 마스크 : 네트워크부와 호스트부의 경계가 고정이 아닌 가변적임에 따라 어디까지가 네트워크부인지 명시하는 마스크
공인 IP 주소(Public IP) : 인터넷에서 사용하는 IP주소로 인터넷 통신을 위해 반드시 필요
사설 IP 주소(Private IP) : 공인 IP 주소범위가 부족함에 따라 대표 공인 IP 주소를 두고 산하의 네트워크에 사설 IP 주소를 배포하여 IP 주소 부족 문제 해결
- 10.0.0.0 ~ 10.255.255.255
- 192.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
- 사설 IP 주소는 사설 네트워크에서는 자유로이 사용가능하며 다른 네트워크의 사설 주소가 겹치더라도 통신은 공인 IP 주소를 거쳐서 들어오기 때문에 문제가 없다.
NAT(Network Address Translation) : 인터넷은 공인 IP 주소만 사용하므로 사설 네트워크에서 인터넷으로 통신하기 위해서는 공인 IP 주소로 바꿔야 하는데 그 과정을 말한다.
- 사설 네트워크에서 인터넷으로 요청 전송 시 출발지 IP 주소 변환
- 라우터는 다시 되돌리기 위해 변환한 주소의 쌍을 NAT 테이블에 저장
- 요청에 대한 응답이 라우터로 돌아오면 목적지 IP 주소를 NAT 테이블로 참조하여 변환
- NAPT(Network Address Port Tanslation) : 복수의 사설 주소를 하나의 글로벌 주소에 대응
- ICMP(Internet Control Message Protocol) : IP가 통신이 정상적으로 이루어지는지 확인하지 않기 때문에 그 기능을 수행하는 프로토콜
- 에러 리포트 : 어떤 사유로 IP 패킷이 폐기되었다면 폐기한 기기가 ICMP를 이용해 폐기한 IP 패킷의 출발지로 에러 리포트(도달불능 메시지) 전송
- 진단 기능 : IP의 엔드투엔드 통신이 가능한지 확인(ex. Ping command)
ARP : 인터페이스를 식별하기 위한 MAC 주소를 대응
- 이더넷 인터페이스에서 IP 패킷 전송 시 이더넷 헤더를 첨부하는데 목적지 MAC 주소를 지정해야 한다.
- 목적지 IP 주소에 대응하는 MAC 주소를 구하기 위해 ARP 사용, 이 과정을 주소 해석이라 한다.
- ARP 요청하여 IP 주소에 대응하는 MAC 주소 질의
- 질의받은 IP 주소를 가진 호스트가 ARP 응답으로 MAC 주소 회신
- 주소 해석한 IP 주소와 MAC 주소 쌍을 ARP 캐시에 저장
- 이후 이더넷 헤더에 목적지 MAC 주소, 출발지 MAC 주소를 적어서(캡슐화) 전송
포트
- 호스트에서 동작하는 애플리케이션에 데이터를 배분하기 위해서는 각각의 애플리케이션 식별 정보가 필요하다.
- 포트 번호 : TCP/IP의 애플리케이션을 식별하는 번호로 TCP/UDP 헤더에 지정
- 총 16비트로 0~65535까지 지정 가능
- 웰노운 포트(well-known port) : 사전에 정해진 포트 번호
- 범위는 0 ~ 1023까지로 서버 애플리케이션 용으로 예약된 포트 번호이다.
- 주요 웰노운 포트 번호 : HTTP(80), HTTPS(443), SMTP(25), FTP(20/21), DHCP(67/68)
- 등록된 포트(registered port) : 웰노운 포트를 제외하고 사전에 지정된 자주 이용되는 애플리케이션의 서버쪽 포트 번호
- 범위는 1024~44151이다.
- 동적/사설 포트 : 클라이언트 애플리케이션을 식별하기 위한 포트 번호
- 요청마다 매번 바꿀 수 있으며 클라이언트가 통신할 때 동적으로 할당
- 범위는 44152~65535이다.