네트워크 핵심 개념 정리
네트워크 핵심 개념 정리입니다. Switch/Bridge 동작, TCP/IP 데이터 단위, IP와 netmask, switching, CSMA/CD, table 차이를 정리했습니다.
네트워크 핵심 개념 정리
네트워크를 공부할 때는 용어를 외우기보다 어느 계층에서 어떤 주소를 보고 어디로 전달하는가를 기준으로 정리하는 편이 좋다. 스위치는 MAC 주소를 보고 같은 LAN 안에서 프레임을 전달하고, 라우터는 IP 주소와 라우팅 테이블을 보고 다른 네트워크로 패킷을 전달한다.
Switch와 Bridge의 기본 동작
스위치는 브리지의 기능을 고속화하고 포트 수를 늘린 장비로 이해할 수 있다. 핵심은 MAC address table을 만들고, 목적지 MAC 주소에 맞는 포트로 프레임을 보내는 것이다.
- Learning: 들어온 프레임의 출발지 MAC 주소와 포트를 학습한다.
- Filtering: 목적지가 같은 포트에 있으면 다른 포트로 보내지 않는다.
- Forwarding: 목적지 MAC 주소를 알고 있으면 해당 포트로 보낸다.
- Flooding: 목적지 MAC 주소를 모르면 같은 VLAN의 다른 포트로 뿌린다.
- Aging: 일정 시간 보이지 않는 MAC table entry를 삭제한다.
TCP/IP 계층과 데이터 단위
계층마다 부르는 데이터 단위가 다르다. 장애를 볼 때도 어느 계층에서 막히는지를 구분해야 한다.
Application : message
Transport : segment 또는 datagram
Internet : packet
Link : frame예를 들어 HTTP 요청이 실패할 때 DNS가 안 되는지, TCP 연결이 안 되는지, 라우팅이 안 되는지, L2 연결 자체가 안 되는지를 나눠 보면 원인 범위가 줄어든다.
IP 주소와 Netmask
IP 주소는 호스트를 식별하고, netmask 또는 prefix length는 어느 부분이 네트워크 주소인지 결정한다. 192.168.10.25/24라면 네트워크는 192.168.10.0, 일반적인 호스트 범위는 192.168.10.1부터 192.168.10.254까지다.
IP address : 192.168.10.25
Prefix : /24
Netmask : 255.255.255.0
Network : 192.168.10.0
Broadcast : 192.168.10.255Circuit Switching과 Packet Switching
Circuit switching은 통신 전용 회선을 예약하는 방식이다. 회선이 잡히면 안정적이지만 자원이 고정된다. Packet switching은 데이터를 작은 패킷으로 나누고 네트워크 상태에 따라 전달한다. 인터넷은 packet switching 기반이며, 통계적 다중화를 통해 여러 사용자가 링크를 공유한다.
CSMA/CD
CSMA/CD는 오래된 반이중 Ethernet 환경에서 충돌을 다루기 위한 방식이다. 현대 스위치 기반 전이중 Ethernet에서는 충돌 도메인이 크게 줄어들어 예전처럼 자주 체감하는 개념은 아니지만, Ethernet 역사와 shared media 구조를 이해할 때 필요하다.
- Carrier Sense: 전송 전에 매체가 사용 중인지 확인한다.
- Multiple Access: 여러 장비가 같은 매체를 공유한다.
- Collision Detection: 충돌을 감지하면 전송을 멈추고 재시도한다.
Bridge Table과 Router Table
Bridge table 또는 MAC table은 MAC 주소가 어느 포트에 있는가를 저장한다. Router table은 목적지 IP 네트워크로 가려면 어느 next hop 또는 인터페이스로 보내야 하는가를 저장한다.
Switch decision:
destination MAC -> switch port
Router decision:
destination IP network -> next hop / outgoing interfaceHost, Node, ISP, 2-tier
Host는 IP를 가지고 통신에 참여하는 장비를 의미하는 경우가 많고, node는 네트워크에 연결된 장비를 더 넓게 부르는 말이다. ISP는 인터넷 접속을 제공하는 사업자다. 2-tier architecture는 client와 server처럼 두 계층으로 나눈 구조를 말하며, 규모가 커지면 web, application, database처럼 3-tier 이상으로 분리한다.