전공 수업 내용 정리 (문제 발생시 비공개합니다.)
Special Addresses
classful addressing에서 일부 주소는 특수 목적을 위해 예약되어 있었다.
classless addressing 체계는 classful addressing에서 이러한 특수 주소 중 일부를 상속한다.
All-zero address
- Source: 0.0.0.0 ☞ 모든 bit가 0인 주소
아직 IP가 할당되지 않은 PC가 DHCP에게 요청 packet을 보낼 때 시작지점 주소가 할당되어있지 않으므로 0.0.0.0으로 사용하는 것
- 고정 IPex) 네이버, 다음, 쿠팡, 11번가, 개인쇼핑몰 등...
- 컴퓨터를 껐다 켜도 IP가 바뀌지 않는 것. 사이트 운영 시 사용.
- 유동 IP
- 일반 가정집에서 사용하는 모든 IP. 컴퓨터 부팅 시 마다 누군가에게 할당받아야 함.
DHCP(Dynamic Host Configuration Protocol)
- 클라이언트는 네트워크 부팅과정에서 DHCP 서버에 IP주소를 요청하고 DHCP는 클라이언트에게 동적으로 IP를 할당해 준다.
- DHCP 서버: 고정 IP가 아닌 유동 IP의 경우 할당을 해주어야 하는데, 클라이언트에게 IP 할당 요청이 들어오면 IP를 부여해주고 할당 가능한 IP들을 관리한다.
- 예시: 인터넷 공유기
DHCP 프로토콜에는 주소가 할당되지 않은 PC로부터 packet을 받고 다시 보낼 때의 MAC주소 처리 방법 등이 정의되어있다.
Broadcast
- 네트워크 상의 모든 호스트들에게 동시에 메시지를 전송하는 방법
- 전체에게 트래픽을 전달하는 All-to-All 통신 ☞각 송신자가 그룹 내의 모든 수신자에게 메시지를 전송하는 컴퓨터 통신 방법. ↔ 유니캐스트(각 발신자가 하나의 수신자와 통신하는 지점 간 (point-to-point) 통신 방법)
- 호스트는 도착한 패킷을 확인해 목적지가 본인 ip주소와 동일할 시 수신하고 그렇지 않을 시 무시한다.
- directed broadcast와 limited broadcast로 나눈다.
Limited broadcast address
- Destination IP address: (255.255.255.255) ☞ IP의 bit가 모두 1인 주소
- 목적지 DHCP 서버의 주소를 모르기 때문에 1.1.1.1을 Destination으로 사용
- 로컬 네트워크의 device에게 정보를 전송하기 위해 사용
- 해당 네트워크의 라우터는 패킷이 다른 네트워크로 전송되지 못하게 block → 그렇지 않으면 해당 네트워크 이외의 전 세계의 네트워크에게 수신된다.
Directed broadcast address
- 네트워크 밖에서 특정 네트워크의 호스트들에게 메시지를 전송하는 방법
- 라우터가 해당 네트워크의 모든 호스트들에게 보낼 데이터가 존재하는 경우 directed broadcast 사용
- Destination IP address: 221.45.71. ☞ suffix bit가 모두 1인 주소
루프백 주소(Loopback address)
- 목적지 IP 주소: 127.0.0.1
- 한 컴퓨터에서 서버와 클라이언트를 모두 실행하는 IP 주소 = 로컬호스트 주소(localhost)
- 목적지 IP 주소를 127.0.0.1로 설정하게 되면 A의 네트워크 계층은 이 패킷을 외부로 전송하지 않는다. 전송하지 않고 고스란히 자신이 다시 받은 것처럼 처리하여, 상위 계층으로 올려 보낸다. 즉 자신이 송신한 패킷을 그대로 수신한 효과를 준다.
- 로컬 컴퓨터를 원격 컴퓨터인 것처럼 통신할 수 있어 웹 서버나 인터넷 소프트웨어의 네트워크 동작 기능을 테스트하는 목적으로 사용된다
사설망(private networks)
- 사설망이란?
- 특정 회사나 조직이 소유하여 독점적으로 사용하는 내부적인 네트워크
- 인터넷과 연결되지 않고 으로만 사용 시 TCP/IP를 자유롭게 사용하고 그 안의 호스트 주소도 사설망 관리자가 마음대로 지정 가능
- 사설망에서 벗어난 다른 네트워크와 접속하려면 추가적인 장비를 통해야만 인터넷에 접속할 수 있다.
- 사설망 내 호스트는 본인의 IP가 사설망 관리자에 의해 임의로 부여받은 것인지 다른 네트워크와 통신할 수 있는 IP인지 구분하지 못함 ☞ 사설망 주소를 나타내는 주소를 따로 관리
- 자주 쓰이는 주소: 192.168.0.0/16, 10.0.0.0/8
네트워크 주소 변환 (NAT = Network Address Translation)
- IP 패킷의 포트 번호와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
- NAT를 이용하는 이유: 사설망 구축을 위해
- 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다.
- NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있다.
- 자동으로 포트포워딩(Port-Forwarding)을 해줌 ex. 공유기 셋팅
- 10.0.0.1, 10.0.0.2, 10.0.0.3은 사설망 내 호스트의 IP주소
- IP 주소, 포트 번호(10.0.0.1, 3345): 호스트가 사설망 외부 서버에 접속하고자 한다.
- Source에 호스트 IP와 Port번호 / Destination에 상대 서버의 IP와 Port번호를 기재한 데이터그램 패킷을 전송한다.
- 중앙의 NAT 라우터는 Source IP주소에 외부에서 사용할 수 있는 IP 주소, Port(138.76.29.7, 5001)를 할당해 목적지 서버에 전달한다. 해당 변환 사항은 NAT translation table에 작성해 관리한다.
- 서버에게서 응답이 오면 table을 확인해 서버가 보낸 패킷의 목적지(138.76.29.7, 5001)와 매칭되어 있는 사설망 포트 번호, 즉 5001를 찾은 뒤, 해당 주소(10.0.0.1, 3345)로 정보를 전달한다.
- NAT가 할당해주는 외부에서 사용가능한 IP주소는 NAT 라우터 자기자신의 IP주소이다.
- 외부에서 사용가능한 Port는 사용하고 있지 않은 번호를 랜덤으로 할당한다.
- 하나의 컴퓨터에서, 각각 다른 port 번호를 사용하는 호스트들이 동일한 서버에 동시 접속할 때 해당 방법을 통해 호스트들을 구별하고 트래픽을 관리한다.
- WAN side addr와 LAN side addr은 1:1 매칭된다.
- 10.0.0.1은 사설망 내에서는 고유하지만, 다른 사설망과는 중복될 수도 있다. 반면 138.76.29.7은 전세계에 하나뿐인 unique한 IP이다.
서브넷에 속한 디바이스의 [사설 IP 주소, 포트번호]가 게이트웨이 라우터의 [공인 IP 주소, 포트번호]로 매핑된다는 점에서 NAT와 동일해보이지만, 차이점은 매핑관계가 유지된다는 점이다.
참고
P2P(peer-to-peer network)
일반 클라이언트가 서버와 클라이언트 역할을 둘 다 하는 것
내가 서버일 때는 소켓을 만들어놓고 남들이 접속하길 기다리고, 클라이언트일 때는 다른 서버에 접속한다.
랑데뷰 서버
- 제 3의 서버. A2 서버에 접속하기 위해서는 138.76.29.7 / 5002에 접속하면 된다는 정보를 저장해둔다.
- 클라이언트가 A2 서버에 접속하기 위해서는 우선 랑데뷰 서버에 접속해 A2 서버의 주소 정보를 얻어야 한다.
- 이러한 기술을 홀펀칭(Hole punching)이라 한다.
'CS > Network' 카테고리의 다른 글
[네트워크] TCP/IP 프로토콜의 핵심을 쉽게 이해해보자! (0) | 2025.02.13 |
---|---|
[네트워크] 클래스 기반 주소 지정 (0) | 2025.01.29 |
[네트워크] IP 주소 개요 (0) | 2025.01.29 |
[네트워크] 소켓 프로그래밍: 프로토콜, 클라이언트와 서버의 함수호출 (0) | 2025.01.29 |
[네트워크] 소켓 프로그래밍 개요 (0) | 2025.01.29 |