- Published on
2024.08.16
[네트워크 원리] - 03. 네트워크의 공통 언어(1)
네트워크의 공통 언어 TCP/IP
네트워크의 공통 언어
- 프로토콜: PC와 스마트폰 등이 통신하는 규칙
- 네트워크 아키텍처: 복수의 프로토콜을 조합한 것
네트워크 아키텍가 우리가 사용하는 언어로, 현재는 거의 TCP/IP만 사용.
TCP/IP로 통신하는 각종 기기를 호스트라고 부른다.
TCP/IP의 구조 | 주요 프로토콜 | 역할 |
---|---|---|
애플리케이션층 | HTTP, SMTP, POP3, IMAP4, DHCP, DNS 등 | 애플리케이션에서 다룰 테이터 형식과 절차를 결정 |
트랜스포트층 | TCP/UDP | 애플레케이션에 데이터를 할당 |
인터넷층 | IP, ICMP, ARP 등 | 엔드투엔드 통신을 함 |
네트워크 인터페이스층 | 이더넷, 무선 LAN(Wi-Fi), PPP 등 | 프로토콜은 자유롭게 선택 가능, 통신 상대와 같을 필요는 없음 |
데이터를 전송하는 역할을 하는 계층
네트워크 인터페이스층
네트워크 인터페이스층의 역할은 같은 네트워크 안에서 데이터를 전송하는 것
기술적인 관점에서 하나의 네트워크는 라우터와 레이어3 스위치로 구획되는 범위, 또는 레이어2 스위치로 구성하는 범위
인터넷층
인터넷층은 네트워크 사이에서 데이터를 전송하는 역할
라우터를 통해 네트워크끼리 연겨하고 데이터를 전송하는데 이를 라우팅이라고 한다.
원격지 네트워크에서 출발지와 목적지 사이의 데이터 전송을 가리켜 엔드투엔드 통신이라고 함.
엔드투엔드 통신에 이용하는 프로토콜은 IP, ICMP와 ARP는 IP를 도와주는 프로토콜.
애플리케이션의 동작을 준비하는 계층
트랜스포트층
트랜스포트층의 역할은 데이터를 적절한 애플리케이션에 배분하는 것
TCP와 UDP가 트랜스포트층에 포함되는 프로토콜인데, TCP를 이용하면, 혹 데이터가 유실되더라도 사실을 검출해 데이터를 다시 보내주어 엔드투엔드의 신뢰성을 확보해 주는 기능이 있다.
애플리케이션층
애플리케이션층은 애플리케이션의 기능을 실행하기 위한 데이터의 형식과 처리 절차 등을 결정한다.
단순히 '0'과 '1'이 아니라 인간이 인식할 수 있도록 문자와 이미지 등으로 데이터를 표현한다.
HTTP: 크롬, 엣지 등 웹브라우저에서 이용
SMTP, POP3: 아웃룻, 썬더버드 등 전자메일 소프트웨어에서 이용
DHCP, DNS: 애플리케이션의 통신을 준비하기 위한 프로토콜
데이터 송수신 규칙
헤더: 기능을 실현하기 위한 프로토콜의 제어 정보
캡슐화: 데이터를 전송할 때 헤더를 추가하는 것
역캡슐화/비캡슐화: 프로토콜 헤더를 바탕으로 데이터를 처리하고 헤더를 제거 후 다른 프로토콜로 처리를 넘기는 것
웹브라우저에서 데이터 보내기
네트워크로 내보내는 데이터는 여러 프로토콜의 헤더가 추가됨
웹브라우저 데이터 => HTTP 헤더로 캡슐화 => TCP 헤더 추가 => IP 헤더 추가 => 이더넷 헤더와 FCS 추가
FCS(Frame Check Sequence): 에러 체크를 위한 정보
데이터 수신, 전송할 때의 규칙
네트워크 기기는 수신한 물리적 신호를 0과 1의 데이터로 되돌린 후 헤더를 참조하여 데이터를 전송해 감
각 계층의 프로토콜이 각각의 헤더를 해석하고 헤더를 제거 후 상위 프로토콜로 데이터 처리를 넘겨준다.
(위의 웹브라우저에서 데이터 보내기 순서와 반대로 진행됨)
데이터를 부르는 방법은 다양하다
계층별로 데이터를 부르는 방법이 구분된다.
- 애플리케이션층: 메시지
- 트랜스포트층: 세그먼트(TCP 이용 시) 또는 데이터그램(UDP 이용 시)
- 인터넷층: 패킷 또는 데이터그램
- 네트워크 인터페이스층: 프레임
데이터를 목적지까지 전송한다
IP: 특정 PC에서 다른 PC까지 데이터를 보내는 엔드투엔드 통신을 하는 프로토콜
IP로 데이터를 전송하기 위해서는 데이터에 IP 헤더를 추가해 IP 패킷으로 만들어야 한다.
IP 헤더에는 여러 정보 중, 가장 중요한 것은 IP 주소, 데이터의 출발지와 목적지를 나타내기 때문
목적지가 다른 네트워크에 접속된 경우는 중간에 라우터가 존재한다. 이때 경로 상에 있는 라우터가 IP 패킷을 라우팅한다.
통신 상대는 누구?
IP 주소: 통신 상대가 되는 호스트를 식별하기 위한 식별 정보
TCP/IP 통신 시 데이터에 IP 헤더를 추가해 IP 패킷으로 만든다. IP 헤더에는 목적지와 출발지의 IP 주소가 반드시 지정되어야 한다.
IP 주소는 이더넷 등 인터페이스와 연결 지어 설정하는데, PC 등에는 복수의 인터페이스가 탑재될 수 있다. (유선 이더넷 인터페이스 + 무선 LAN 인터페이스 등) 인터페이스마다 IP 주소를 설정할 수 있어, IP 주소는 호스트 자체가 아니라 호스트의 인터페이스를 식별한다.
IP주소는 32비트로, 0
과 1
이 32개 나열되는 구조다. 이를 8비트씩 10진수로 변환하고 .
으로 구분하는데 8비트 10진수가 0~255
이므로 0~255
사이의 숫자를 .
으로 구분해 4개 나열되는 형태가 일반적인 IP 주소이다.
목적지는 하나? 아니면 여러 개?
목적지가 하나인지 여러 개인지에 따라 데이터 전송 방식을 3가지로 분류할 수 있다.
유니캐스트
단 한 곳으로 데이터를 전송하는 것, 유니캐스트에 이용하는 IP 주소가 유니캐스트 IP 주소
같은 데이터를 복수의 주소로 전송하고 싶을 때는 목적지수만큼 유니캐스트 데이터 전송을 반복하면 되지만, 효율이 좋지 않아 브로드캐스트와 멀티캐스트를 사용한다.브로드캐스트
같은 네트워크 상의 모든 호스트
에 같은 데이터를 전송하는 것.
IP 헤더의 목적지 IP 주소에 브로드캐스트 IP 주소를 지정하면 같은 네트워크 상의 모든 호스트에 데이터 전송 가능멀티캐스트
같은 애플리케이션이 동작하는 등특정 그룹에 포함되는 호스트
에 같은 데이터를 전송하는 것.
IP 헤더의 목적지에 멀티캐스트 IP 주소를 지정한다.
IP 주소의 구성은 크게 나눠 두 가지
유니캐스트 IP 주소의 구성
TCP/IP 통신의 대부분은 유니캐스트
IP 주소는 네트워크부와 호스트부의 두 부분으로 구성된다.브로드캐스트 IP 주소
브로드캐스트 IP 주소는 32비트가 모두1
인 IP 주소이다.
도트형 10진 표기로는255.255.255.255
가 브로드캐스트 IP 주소이다.멀티캐스트 IP 주소
멀티캐스트 IP 주소는224.0.0.0
~239.255.255.255
로 범위가 정해져 있다.
이 범위 중 특정 멀티캐스트 IP 주소가 그룹을 나타내는데 쓰인다.
IP 주소의 범위 구분
서브넷 마스크: 32비트 IP주소의 어디까지가 네트워크부인지를 명시한 것
네트워크부와 호스트부의 구분은 고정된 게 아니라 가변적이라 서브넷 마스크로 IP 주소의 네트워크부와 호스트부를 구분한다.
서브넷 마스크는 IP 주소처럼 0
과 1
이 32개 나열되는데 1
은 네트워크부를, 0
은 호스트부를 나타낸다.
서브넷 마스크는 연속한 1
과 연속한 0
으로 이루어져 있으며, 교대로 나타나는 경우는 없다./
뒤에 연속한 비트 1
의 개수로 표기하는 프리픽스 표기법도 있다.
원칙적으로 IP 주소에는 서브넷 마스크를 병기해서 네트워크부와 호스트부를 명확하게 구분한다.
네트워크에 접속하는 두 단계
네트워크 접속의 두 단계
- 물리적인 접속(네트워크 인터페이스층)
- 논리적인 접속(인터넷층)
물리적으로 신호를 주고받을 수 있게 하는 것, 이더넷 인터페이스에 LAN 케이블 연결 등.
물리적 접속이 이루어진 후에 논리적인 접속으로 IP 주소/서브넷 마스크 등을 설정한다.