예시 대역: 192.168.0.x
| 주소 | 용도 |
|---|---|
192.168.0.0 | 네트워크 주소 (대역 식별용) |
192.168.0.1 | 게이트웨이 (외부로 나가는 문) |
192.168.0.2 ~ 254 | 실제 사용 가능한 호스트 (~253개) |
192.168.0.255 | 브로드캐스트 (전체에게 전송) |
브로드캐스트는 같은 네트워크의 모든 기기에서 동시에 패킷을 보내는 방식임 편하지만 기기가 많을수록 트래픽이 폭발적으로 늘어남
/24 서브넷 기준으로 쓸 수 있는 호스트는 네트워크 주소와 브로드캐스주소를 뺀 나머지 약 253개정도 입니다.
127.0.0.1 — 항상 "나 자신"을 가리키는 특수 주소 흔히 쓰는 localhost이며 네트워크로 나가지 않고 자신에게 돌아옴
이해하기 쉽게 아래 그림 제공

인터넷은 라우터의 집합체라고 할 수 있는 논리 네트워크
인터넷 = 라우터 + DNS 의 집합체
라우터와 L3 스위치는 같은 역할
TTL(Time To Live)
라우터 → 라우터 사이 이동 한 번 =홉 1회 → TTL 1감소 TTL이 0이 되면 패킷을 버림(무한 루프 방지)
라우터 마다 이 MTU라는게 다른데 MTU보다 큰 패킷이 오면 아래와 같이 대처합니다
이것을 단편화라고 부릅니다
인터넷을 쓰려면 아래 4가지 설정이 필요합니다. 이것을 자동으로 받아오는것을 DHCP 프로토콜이라고 합니다
| 설정 | 설명 |
|---|---|
| IP 주소 | 내 주소 |
| Subnet mask | 내가 속한 네트워크 범위 |
| Gateway IP | 외부로 나가는 문 |
| DNS 주소 | 도메인 → IP 변환 서버 |
동작 순서를 아래와 같이 정리 했습니다
DHCP 풀(Pool)
DHCP 서버가 나눠줄 수 있는 IP 주소 목록을 가지고 있습니다. 요청이 오면 풀에서 하나 꺼내서 줍니다.
IP 주소로 MAC 주소를 알아내는 프로토콜
인터넷에 나가려면 게이트웨이를 통해야 함, 실제 데이터를 전송할 때는 IP가 아닌 MAC 주소로 전달함
동작 순서를 요약해보면
네트워크 연결 상태를 확인하는 프로그램입니다. 내부적으로 ICMP 프로토콜을 사용합니다.
패킷이 갔다가 돌아오는 데 걸리는 시간입니다.
| TCP | UDP | |
|---|---|---|
| 별명 | 배려남 | 나쁜남자 |
| 연결 | 연결 수립 후 전송 | 그냥 바로 전송 |
| 신뢰성 | 상대가 못 받으면 안 보냄 | 무조건 보내버림 |
| 속도 | 느림 | 빠름 |
| 활용 | 웹, 파일 전송 | 영상 스트리밍, 게임 |
[사용자 모드]
프로세스(Client)
-> 소켓 생성
-> OS가 임시 포트 3000 할당
[커널 모드]
TCP 계층 : src port 3000 / dst port 80 붙임
IP 계층 : src IP 192.168.0.10 / dst IP 192.168.0.20 붙임
[하드웨어]
NIC -> 네트워크로 전송
[네트워크 구간]
홉마다 교체 -> MAC 주소(L2)
끝까지 유지 -> IP 주소(L3)
[하드웨어]
NIC가 L2 프레임 수신
[커널 모드]
IP 확인 -> 나한테 온 패킷 확인
TCP 확인 -> dst port 80 → 해당 소켓으로 전달
[사용자 모드]
80 포트 LISTEN 중인 서버 프로세스(nginx,tomcat 등)가 데이터 수신
그림으로 이해하기 쉽게 프롬프트를 통해 이미지를 추출했습니다.
