모뎀은 게이트웨이 역할인 것입니다 그리고 게이트웨이는 남는 사설IP중 하나를 쓰게 됩니다.
IP 주소와 기본 게이트웨이 주소를 비교해봅시다.
119.197.66이 공통된 것을 볼 수 있습니다. 다른 점은 맨 뒤의 숫자가 다른 것을 볼 수 있습니다. 즉. PC와 게이트웨이 사이에 설정된 네트워크 ID가 동일하다고 볼 수 있습니다.
동일한 네트워크 ID를 공유하는 장치들의 공간을 LAN이라고합니다.
이렇게 동일한 네트워크 ID라는 LAN이란 공간은 같은 모뎀(일반적으로 공유기를 의미)을 사용한다는 의미입니다.
네트워크 간 데이터를 전송할 때 거치는 장소로 게이트웨이가 존재하지 않으면 데이터가 외부로 나갈 수 없다(즉 인터넷 사용 못함) → 공유기로부터 데이터가 들어오고 나가기 때문이다.
📝랜카드
네트워크랑 연결해주는 유선 인터페이스를 지원하고 무선연결도 지원해준다. 통신하기 위한 고유한 맥주소가 저장되어있다.
📝MAC 주소
통신기기 하드웨어에 부과되는 고유한 물리적 주소 48bit로 구성 (00:0a:... 콜론6개로 구성)
데이터 링크 계층에서 사용되며 로컬 네트워크에서 장치 식별과 데이터 전송을 담당합니다.
📝네트워크 주소
192.168.0.177, 192.168.0.43 이 두 아이피 주소는 동일한 네트워크 주소를 가졌다고 볼 수 있다. 192.16.0.X
📝브로드캐스트 주소
해당 네트워크 내부의 모든 기기들에게한번에 데이터를 전송하기 위한 용도로 사용되는 전용 IP 주소로 서브넷 대역대의 255로 기본적으로 할당됩니다
브로드 캐스트 서버로 메세지 보내기
import socket
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
# UDP 소켓 생성
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 브로드캐스트를 허용하도록 설정
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
# 브로드캐스트 주소와 포트 번호 설정
broadcast_address = ('172.30.1.255', 12345)
# 브로드캐스트 메시지 전송
message = b'Hello, Network!'
sock.sendto(message, broadcast_address)
# 소켓 닫기
sock.close()
클라이언트 (브로드캐스트 구독)
import socket
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
# 수신 소켓 생성 (UDP)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 모든 네트워크 인터페이스에서 수신하기 위해 빈 문자열로 바인딩
sock.bind(('', 12345)) # 포트는 메시지를 보낼 때 사용한 포트와 동일해야 합니다.
print("브로드캐스트 메시지 수신 대기 중...")
while True:
# 메시지를 수신
data, addr = sock.recvfrom(1024) # 최대 1024 바이트의 데이터 수신
print(f"Received message: {data.decode()} from {addr}")
위 코드는 브로드 캐스트 주소를 이용해 해당 주소로 요청을 보내면 그걸 구독하고 있는 클라이언트가 메시지를 받는 예제입니다.
네트워크 성능 보장, 자원을 효율적으로 분배하기 위해네트워크 영역과 호스트 영역을 쪼개는 작업
동일한 네트워크 ID를 가지면 같은 로컬 네트워크에 있다고 판단한다.
📝서브넷마스크 (표기법)
서브네팅을 하기 위한 서브넷마스크 작성 방식입니다. 개인적으로 CIDR 표기법을 먼저 알고 그걸 SubnetMask 방식으로 필요할 때 변환시키는 게 이해하기 쉬운 것 같다.
IP는 총 32비트로 구성되어있고 영역 하나씩 8비트를 차지한다. CIDR /26인 경우는 3개의 영역의 비트(24)와 2비트가 남는데 2^2 = 4개의 서브넷으로 이루어지고 256을 4로 나누면 64의 영역인 0 ~ 63, 64 ~ 127, 128 ~ 191, 192 ~ 256이 해당된다. 즉 4개의 네트워크 영역으로 나뉘게 된다.
📝CIDR 표기법
IP주소와 서브넷마스크를 한번에 표현한다.
192.168.10.1/24
IP 주소는 192.168.10.1이고 서브넷마스크 → 255.255.255.0이라는 표시
DMZ(비무장 지대)는 외부 네트워크와 내부 네트워크 사이의 중립 구역입니다. 외부에서 접근해야 하는 서버(예: 웹 서버, 메일 서버)를 DMZ에 배치하고, 내부 네트워크를 보호합니다. 방화벽은 외부에서 DMZ로의 트래픽을 허용하고, DMZ에서 내부 네트워크로의 트래픽을 제한하는 역할을 합니다.
📝방화벽
네트워크간의 트래픽을 감시하고 제어하는 역할로 허용된 트래픽만 내부 트래픽으로 들어오거나 나갈 수 있도록 할 수 있습니다. (인바운드, 아웃바운드)
📝인바운드 규칙
외부에서 내부 네트워크로 들어오는 트래픽을 이야기합니다. 예를 들면 443인 HTTPS 포트는 허용하지만 FTP 포트 21은 차단할 수 있습니다. (기본적으로 모든 것 차단)
📝아웃바운드 규칙
내부 네트워크에서 외부 네트워크로 나가는 트래픽을 이야기합니다. 예를 들면 필요한 특정 사이트만 접근 가능하도록 허용(데이터 요청)하고 그 외에는 요청이 안 되어서 못 쓰게 만드는 등 사용이 가능합니다. (기본적으로 모든 것 허용)
📝포트포워딩
외부에서 내부 네트워크로 들어오는 트래픽을 특정 장치로 전달하는 명시적인 규칙을 설정하는 것입니다. 예를 들면 공인 IP의 80번 포트를 요청하면 어떤 사설 IP의 3000번 포트로 전달하게 된다 등에 사용됩니다.