네트워크 통신 방식
네트워크 통신 방식에는 각각의 대상에 따라 구분되어 유니캐스트, 브로드캐슽, 멀티캐스트, 애니캐스트가 있다.
[유니캐스트]
출발지와 목적지가 정확해야 하는 1:1 통신이다.
한 PC에서 유니캐스트 프레임을 전송하면, 로컬 네트워크상의 모든 PC들은 프레임을 받아 자신의 MAC 주소와 비교해서, 다르면 버리고 같으면 프레임을 받아들여 CPU로 전송한다
[브로드캐스트]
같은 네트워크에 있는 모든 장비들에게 보내는 통신이다.
과도한 브로드캐스는 네트워크 및 PC 성능을 떨어뜨릴 수 있다.
송신 노드 하나가 네트워크에 연결된 수신 가능한 모든 노드에 데이터를 전송한다.
[멀티캐스트]
전체 사용자 중 특정 일부에게 정보를 동시에 보내야하는 경우 사용된다.대상을 선택적으로 선정하여 데이터를 전송하기 때문에 불필요한 트래픽이나 성능저하를 피할 수 있다.라우터나 스위치에서 해당 기능을 지원해주어야 사용이 가능하다.
[애니캐스트]
애니캐스트 통신은 가장 가까운 Node와 통신하는 방식이다.
유니캐스트와 다른 점은 송신 노드가 네트워크에 연결된 수신 가능한 노드 중에서 한 노드에만 데이터를 전송한다.
주로 트래픽 분산, 네트워크 이중화, DDos 공격 발생 시 서버가 받는 피해 최소화 등의 목적을 위해 사용된다.
MAC주소와 IP주소
[MAC 주소]
- MAC 주소는 인터넷이 가능한 장비가 가지고 있는 물리적인 주소
- 네트워크에 참여하려는 장치를 고유하게 식별한다. (NIC카드에 할당한 번호)
- 단 하나의 고유한 주소를 부여해서 통신을 할 수 있도록 만든 일종의 하드웨어 주소
[IPv4]
인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층 프로토콜
32비트의 IP 주소는 Network를 나타내는 부분과 Host를 나타내는 부분으로 구성되어 있고,
Network부분과 Host부분을 구분하는 것은 서브넷 마스크이다.
[IPv4 클래스]
Network ID와 Host ID를 설명드린 이유는 바로 IP Class의 개념을 알기 이전에 필요한 내용입니다.
IP Class의 경우 A, B, C, D, E Class로 나누어 Network ID와 Host ID를 구분하게 됩니다.
네트워크 주소 부분은 IP 기기가 속해 있는 네트워크를 구분하는데 사용되고,
호스트 주소 부분은 네트워크 안에 있는 IP기기를 구분하는데 사용된다.
[IPv6]
인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜로 제정된 인터넷 프로토콜IPv4가 가지고 있는 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해 개발된 128bit 주소체계의 프로토콜
- IP 주소의 확장 (기존 32비트 주소공간에서 벗어나 128비트 주소 공간 제공)
- 이동성 (네트워크의 물리적 위치에 제한 받지 않고 자유롭게 이동 가능)
- 인증 및 보안 기능 (패킷 출처 인증과 데이터 무결성 및 비밀 보장)
- Ad-hoc 네트워크 지원 (Ad-hoc 네트워크를 위한 자동 네트워킹 및 인터넷 연결 지원)
- 단순 헤더 적용 (고정 크기의 단순 헤더를 사용하는 동시에, 확장 헤더를 통해 기능 확장)
클래스풀 & 클래스리스
[클래스풀]
개수가 제한되어 있는 IP를 효율적으로 할당하고 관리하기 위해 도입된 IP 관리 체계
- 전체 IP를 지정된 크기대로 Class라는 그룹으로 분리하여 관리한다.
- 라우팅 정보 전송시 서브넷 마스크 전달을 하지 않는다.
- 클래스별로 무조건 고정된 개수만큼 IP 할당만 가능하여 비효율적인 IP 할당을 해야한다.
[클래스리스]
인터넷이 상용화 되며 폭발적으로 증가한 사용량에 따른 IP 주소 부족을 해결하기 위한 방법.
- Classful 에서는 한개의 클래스 네트워크가 한 조직에 할당 되면 안쓰는 주소라도 다른 주소를 사용하기 어려워 클래스라는 개념을 버렸다.
- 전체 IP를 통합하여 필요한 개수만큼만 나눠서 할당하도록 한다.
[서브넷 ]
서브넷 마스크는 IP 주소와 네트워크 주소를 구분 할 때 사용되는데 2진수 숫자 1은 네트워크 주소, 0은 호스트 주소로 표시한다.
IP주소의 낭비를 줄이고, 좀 더 효율적으로 할당하기 위해 제시된 기법이다.
[서브넷팅]
하나의 네트워크 대역의 IP를 Subnet으로 분할하는 작업이다.
공인IP와 사설 IP
[공인 IP]
인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다.
공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.
- 공인 IP는 전세계에서 유일한 IP 주소를 갖는다.
- 공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 따라서 공인 IP 주소를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치할 필요가 있다.
[사설 IP]
일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이며, 로컬 IP, 가상 IP라고도 한다. IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.
TCP 3HandShake & 4HandShake
[ TCP 핸드셰이킹이란? ]
전송 계층에서 신뢰성 있는 세그먼트 전송 보장을 위해, 송신 측과 수신측 간 TCP Connection 수립 및 전달, 종료되도록 TCP Flags 기반 동작을 수행하는 접속 규약이다.
[3-way Handshaking] - 연결 설정
- 클라이언트가 서버에게 SYN(M) 패킷을 보낸다.
- 서버가 SYN 패킷을 받고, 클라이언트로 받았다는 신호인 ACK와(M+1) SYN(N) 패킷을 보낸다.
- 클라이언트는 서버의 응답으로 ACK(M+1)와 SYN(N) 패킷을 받고, ACK(N+1)을 서버로 보낸다.
[4-Way Handshaking] - 연결 종료
- 클라이언트는 서버에게 연결을 종료했다는 FIN 플래그를 보낸다.
- 서버는 FIN을 받고, 이를 확인했다는 ACK 패킷을 클라이언트에 보낸다.
- 데이터를 모두 보냈다면, 연결이 종료되었다는 FIN 패킷을 다시 보낸다.
- 클라이언트는 FIN 패킷을 받고, ACK 패킷을 서버에게 보낸다.
+ (아직 서버로부터 못받은 데이터가 있을 수 있으므로 TIME_WAIT을 통해 기다린다.)
+ 서버가 ACK를 받고 난 후, 소켓을 닫는다.
+ TIME_WAIT 시간이 끝나면 클라이언트도 닫는다.
TCP vs UDP
[TCP]
TCP는 Transmission Control Protocol의 약자로, 아래와 같은 특징을 갖는다.
- 신뢰성 보장 (ACK 패킷에 따른 재전송 요청)
- 연결 지향적 특징 (3-way, 4-way handshaking)
- 흐름 제어 (데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우 방지)
- 혼잡 제어 (네트워크 내의 패킷 수가 넘치지 않도록 방지)
[UDP]
UDP는 User Datagram Protocol의 약자로, 아래와 같은 특징을 갖는다.
- 비연결성 및 비신뢰성 (제대로 도착했는지 확인 응답 없음, 오류 검출 없음)
- 순서화되지 않은 데이터그램 서비스 제공 (수신된 메시지의 순서 맞추지 않음)
- 실시간 응용 및 멀티캐스팅 기능 (빠른 요청과 실시간 응용)
- 단순 헤더 (고정 크기의 8바이트만 사용)
ARP (Address Resolution Protocol)
[정의]
- 논리적인 주소(IP Adress)를 물리적인 주소(MAC Address)로 변환하는 작업이다.
- 클라이언트와 네트워크 트래픽이 집중되는 서버들 또는 네트워크 허브 사이에 위치한다.
[동작 원리]
1) 송신자는 목적지 IP Address를 지정해 패킷 송신 (물리주소 모름)
2) 물리 주소를 알아 내기 위해 ARP 요청 메시지 생성
ARP 요청 메시지 (송신자 물리주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP주소)
3) 메시지는 2계층으로 전달되고 이더넷 프레임으로 Encapsulation 됨
= 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정
4) 모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달
5) 목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메시지를 보냄
= 자신의 물리주소를 포함하는 응답 메시지
6) 최초 송신 측은 지정한 IP Address에 대응하는 물리주소를 획득
cf) ARP 요청은 브로드캐스트, ARP 응답은 유니캐스트
참고
| https://velog.io/@minj9_6/MAC-%EC%A3%BC%EC%86%8C%EC%9D%98-%EA%B5%AC%EC%A1%B0
| https://musclebear.tistory.com/12
| https://gmlwjd9405.github.io/2018/09/19/tcp-connection.html
| https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4
'Network' 카테고리의 다른 글
6) 라우터 (2) | 2022.09.12 |
---|---|
5) 스위치 (0) | 2022.09.09 |
3-2) 네트워크 구성요소 (0) | 2022.09.05 |
3-1) 네트워크 유형 (0) | 2022.09.05 |
2-2) OSI 7계층 (0) | 2022.09.02 |