유니캐스트

브로드캐스트

멀티캐스트

애니캐스트

BUM 트래픽
B, U, M은 서로 다른 종류의 트래픽이지만 네트워크의 동작은 서로 비슷함
✍ Unknown Unicast : 목적지가 명확히 명시되어 있지만 스위치가 목적지에 대한 주소를 학습하지 못한 상황이어서 패킷을 모든 포트로 전송함
✍ MAC 주소 : Media Access Control의 줄임말로 2계층(데이터 링크 계층)에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자
2-1. MAC 주소 체계

2-2. MAC 주소 동작

NIC에서는 목적지 MAC 주소를 확인해 자신을 목적지로 한 패킷만 수용
✍ 무차별 모드(Promiscuous Mode) : 패킷이 자신의 MAC 주소와 일치하지 않는 도착지 주소를 가졌을 경우, 자체적으로 폐기되는데 다른 목적지를 가진 패킷을 분석하거나 수집해야 할 경우, 무차별 모드로 NIC을 구성
3-1. IP 주소 체계

IPv4 주소 체계
IP 주소는 네트워크 주소와 호스트 주소 두 부분으로 나뉨
필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당 할 수 있는 클래스(Class) 개념 도입
A 클래스는 첫 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있고 B 클래스는 두 번째 옥텟, C 클래스는 세 번째 옥텟에 구분자가 있음

네트워크 주소와 호스트 주소를 나누는 구분자는 클래스(네트워크 크기)에 따라 변경
첫 옥텟을 이진수로 표기했을 때 2진수 8자리 중 맨 앞 자리가 0인 주소는 A 클래스, 첫 옥텟을 2진수로 표기했을 때 첫 번째 자리가 1이고 두 번째 자리가 0인 주소는 B 클래스, 첫 옥텟을 2진수로 표기했을 때 2진수 8자리 중 첫 번째, 두 번째 자리가 1이고 세 번째 자리가 0인 주소는 C 클래스임

클래스 구분법
3-2. 클래스풀과 클래스리스
✍ 클래스풀(Classful) : 클래스 기반의 IP 주소 체계
✍ 클래스리스 : 클래스풀에서는 한 개의 클래스 네트워크가 한 조직에 할당되면 아무리 비어 있는 주소라도 IP를 분할해 다른 기관이 사용하도록 할 수 없는 문제를 해결하기 위해 클래스 개념 자체를 버린 것
✍ 서브넷 마스크(Subnet Mask) : 클래스리스 네트워크에서 별도로 네트워크와 호스트 주소를 나누는 구분자를 사용해야 하는데 이 구분자를 서브넷 마스크라 함

기본 서브넷 마스크
3-3. 서브네팅
✍ 서브네팅(Subnetting) : 원래 부여된 클래스의 기준을 무시하고 새로운 네트워크-호스트 구분 기준을 사용자가 정해 원래 클래스풀 단위의 네트워크보다 더 쪼개 사용하는 것
이미 설계되어 있는 네트워크에서 사용할 수 있는 IP 주소 범위를 파악해야 함

서브네팅 방법
📌 서브넷 마스크는 네트워크와 호스트 주소를 나누는 구분자이므로 항상 이 구분자를 중심으로 계산이 이루어져야 함
📌 네트워크 설계 시, 가능하면 사설 IP 대역을 사용해 충분한 IP 대역을 사용하는 것이 좋음
3-4. 공인 IP와 사설 IP

다른 기관에서 사용하는 공인 IP를 회사 내부에서 사용할 경우, 해당 IP로의 접근이 불가능
📌 A 회사와 C 회사는 인터넷 구간을 거쳐 통신해야 하므로 원격지와 통신 시도를 서로 인식해야만 정상적인 통신이 가능하지만 현재 네트워크 구조에서는 같은 네트워크로 인식하므로 정상적인 통신이 불가능
4-1. 4계층 프로토콜(TCP, UDP)과 서비스 포트
데이터를 보내고 받는 인캡슐레이션, 디캡슐레이션 과정에 각 계층에서 정의하는 헤더가 추가되고 여러가지 정보가 들어가는데, 다양한 정보 중 가장 중요한 정보는 각 계층에서 정의하는 정보, 상위 프로토콜 지시자 정보임
각 계층에서 정의하는 정보
상위 프로토콜 지시자 정보
4계층은 TCP, UDP가 담당하는데, 4계층의 목적은 목적지를 찾아 가는 주소가 아니라 애플리케이션에서 사용하는 프로세스를 정확히 찾아가고 데이터를 분할한 패킷을 잘 쪼개 보내고 잘 조립하는 것
3계층의 프로토콜 번호나 2계층의 이더 타입과 같은 상위 프로토콜 지시자는 출발지와 도착지를 구분해 사용하지 않고 한 개만 사용하지만 4계층 프로토콜 지시자인 포트 번호는 출발지와 목적지를 구분해 처리
웰 노운(Well Known) 포트 : HTTP TCP 80, HTTPS TCP 443, SMTP TCP 25와 같이 잘 알려진 포트, 이미 인터넷 주소 할당기구인 IANA(Internet Assigned Numbers Authority)에 등록되고 1023번 이하의 포트 번호를 사용
동적, 사설, 임시 포트의 범위는 49152 ~ 65535로 IANA에 등록되어 사용하지 않고, 자동 할당되거나 사설 용도로 할당되고 클라이언트의 임시 포트 번호로 사용
4-2. TCP
TCP 프로토콜의 특징
패킷 순서, 응답 번호
✍ 시퀀스 번호 : 패킷에 순서를 부여하는 것
✍ ACK 번호 : 응답 번호를 부여하는 것

시퀀스 번호와 ACK 번호의 기본 동작 방식, 패킷을 하나 보내고 이에 대한 응답을 받음

패킷 순서 및 시퀀스 번호, ACK 번호의 더 자세한 기본 동작 방식
윈도 사이즈와 슬라이딩 윈도
✍ 윈도 사이즈 : 가능하면 최대한 많은 패킷을 한꺼번에 보내는 것이 효율적이지만 네트워크 상태가 안 좋으면 패킷 유실 가능성이 커져 적절한 송신량을 결정해야 하는데 한 번에 데이터를 받을 수 있는 데이터 크기
✍ 슬라이딩 윈도 : 네트워크 상황에 따라 이 윈도 사이즈를 조절하는 것
3방향 핸드셰이크
✍ 3방향 핸드셰이크 : TCP에서는 3번의 패킷을 주고받으면서 통신을 서로 준비

✍ SYN-SENT : 클라이언트에서 통신을 시도하여 Syn 패킷을 보낼 때 클라이언트에서의 상태
✍ ESTABLISHED : 서버와 클라이언트 간의 연결이 성공적으로 완료되었음을 나타냄

TCP 헤더 내용
✍ SYN : 연결 시작 용도로 사용, 연결이 시작될 때 SYN 플래그에 1로 표시해 보냄
✍ ACK : ACK 번호가 유효할 경우, 1로 표시해 보냄, 초기 SYN이 아닌 모든 패킷은 기존 메시지에 대한 응답이므로 ACK 플래그가 1로 표기됨
✍ FIN : 연결 종료 시 1로 표시, 데이터 전송을 마친 후 정상적으로 양방향 종료 시 사용
✍ RST : 연결 종료 시 1로 표시, 연결 강제 종료를 위해 연결을 일방적으로 끊을 때 사용
✍ URG : 긴급 데이터인 경우, 1로 표시해 보냄
✍ PSH : 서버 측에서 전송할 데이터가 없거나 데이터를 버퍼링 없이 응용 프로그램으로 즉시 전달할 것을 지시할 때 사용
4-3. UDP

UDP 헤더, 4계층의 특징인 신뢰 통신을 위한 내용(시퀀스 번호, ACK 번호, 플래그, 윈도 사이즈)이 없음
UDP 프로토콜의 특징
5-1. ARP란?
✍ ARP : 데이터 통신을 위해 2계층의 물리적 주소인 MAC 주소와 3계층 논리적 IP 주소 두 개가 사용되는데 IP 주소 체계는 물리적 MAC 주소와 전혀 연관성이 없으므로 두 개의 주소를 연계시켜 주기 위한 매커니즘

윈도의 ARP 테이블
5-2. ARP 동작



📌 ARP 패킷을 네트워크에 브로드캐스트할 때 2계층 MAC 주소는 출발지를 자신의 MAC으로, 도착지는 브로드캐스트(FF-FF-FF-FF-FF-FF)로 채움
📌 ARP 프로토콜 필드의 전송자 MAC과 IP 주소에는 자신의 주소로, 대상자 IP 주소는 10.1.1.2를, 대상자 MAC 주소는 00-00-00-00-00-00으로 채워 네트워크에 뿌림
이 ARP 패킷은 같은 네트워크 안에 있는 모든 단말에 보내지고 모든 단말은 ARP 프로토콜 내용을 확인하는데 ARP 프로토콜 필드의 대상자 IP가 자신이 맞는지 확인해 자신이 아니면 ARP 패킷을 버림
서버 B에서는 ARP 요청의 대상자 IP 주소가 자신의 IP이므로 ARP 요청을 처리하고 그에 대한 응답을 보냄(ARP 요청에서 받은 서버 A의 정보를 이용해 대상자 MAC, IP 주소를 채우고 자신의 MAC, IP 주소를 송신자 MAC, IP 주소로 채워 응답)


5-3. GARP
GARP를 사용해 동일 네트워크에 자신의 IP 주소와 MAC 주소를 알려주는 이유
✍ FHRP : 이중화 게이트웨이 프로토콜
5-4. RARP
✍ RARP : ARP와 반대로 나 자신의 MAC 주소는 알지만 IP가 아직 할당되지 않아 IP를 할당해주는 서버에 어떤 IP 주소를 써야 하는지 물어볼 때 사용
6-1. 서브넷과 게이트웨이의 용도
✍ 게이트웨이 : 원격 네트워크 통신에 사용하는 장비

✍ 프록시 ARP
- 기본 게이트웨이에 프록시 ARP가 활성화된 경우, 원격지 통신이라도 로컬에 ARP 브로드캐스트를 보내 통신 가능
- PC에서 기본 게이트웨이가 잘못 입력되어 있어도 통신이 되는 경우가 발생
6-2. 2계층 통신 vs 3계층 통신
✍ 2계층 통신(L2 통신) : 단말 간을 연결해주는 네트워크 장비에서 2계층까지만 정보를 확인해 통신하고 ARP 요청을 보낼 때 직접 브로드캐스트를 이용
✍ 3계층 통신(L3 통신) : 원격지 네트워크와 통신해야 할 경우, 라우터와 같은 3계층 장비가 필요한데 해당 패킷을 전송하는 네트워크 장비에서 3계층 정보까지 확인하여 통신

중간에 어느 계층까지 확인하는지에 따라 2계층 통신(왼쪽)과 3계층 통신(오른쪽)으로 나뉨