네트워크 프로토콜
- 네트워크를 통해 컴퓨터끼리 정보를 주고받기 위한 통신 규약을 의미한다.
→ 어떤 방법으로, 어떤 절차를 거쳐서, 어떤 언어로 정보를 보낼지 등 - 방법, 절차, 언어라는 역할마다 계층 구조로 구분된다.
OSI 참조 모델
네트워크의 기본 구조는 상호 호환성과 확장성을 제공하기 위해 7개의 층으로 나누어 관리되는데,
이러한 계층 구조를 OSI 참조 모델 또는 OSI 계층 모델이라고 한다.
송신하는 곳은 물리 계층에서 응용계층까지 순서대로 데이터를 가공해 보내고, 수신하는 곳은 받은 데이터를 역순으로 가공해 복원한다.
TCP/IP
TCP/IP는 인터넷에서 표준으로 사용되는 네트워크 프로토콜이며, IP를 비롯한 여러 프로토콜의 집합체를 총칭하여 부른다.
예를 들어 인터넷의 대표적인 서비스인 www, http 등이 이 프로토콜을 기반으로 움직인다.
TCP/IP 프로토콜을 사용해 전송되는 데이터는 패킷이라는 단위로 나눠진다.
IP는 네트워크 각 기기의 주소를 할당하거나 해당 주소를 기반으로 패킷을 전송하는 역할을 한다.
TCP는 패킷의 수신 확인을 하고 올바른 순서로 패킷이 전달되도록 보장한다. 때문에 신뢰성이 높고 정확도가 높다.
IP
- Internet Protocol
- OSI 참조 모델의 3계층인 네트워크 계층에서 사용되는 네트워크 프로토콜이다.
- 네트워크상의 기기에 주소를 할당하고 경로를 선택해 해당 주소로 패킷을 전송하는 역할을 수행한다.
- 패킷을 상위 계층(TCP, UDP)에서 수신한 뒤, IP 헤더 정보(송신지와 수신지의 IP 주소 등)를 추가해 네트워크에 전송한다.
- 예를 들어 우편물에 붙어있는 송장처럼 패킷에는 IP 헤더라는 꼬리표가 붙어 이 꼬리표를 가지고 목적지로 운반된다.
- 경로 선택 방법이 정의되어 있어 IP를 통해 여러 개의 네트워크를 넘나드는 통신이 가능하다.
TCP
- Transmission Control Protocol
- OSI 참조 모델의 4계층인 전송 계층에서 사용되는 네트워크 프로토콜이다.
- 연결 지향 방식의 통신 기능을 제공한다.
- 데이터 손실 없는 신뢰성 높은 데이터 통신을 보장한다.
- 5계층(세션 계층) 이상의 프로토콜에서 통신 데이터를 수신해 패킷으로 분할하고, IP에 전달하여 목적지로 전송한다.
실제로 패킷을 전송하는 IP는 전송 순서를 보장하지 않기 때문에 따라서 패킷의 손실이나 순서가 뒤바뀌는 일이 발생할 수 있다. 따라서 TCP는 신뢰성 있는 통신을 위해 다음과 같은 방법을 이용한다.
- 통신 데이터를 패킷으로 분할할 때 분할한 순서대로 시퀀스 번호를 부여한다.
- 수신 측에서 시퀀스 번호를 확인해 필요에 따라 순서를 정렬해 패킷 순서가 올바른지 확인한다.
- 수신 측에서 수신완료를 알리는 패킷(ACK 패킷)을 송신 측에 전송한다.
- 송신 측에서 전송한 패킷이 도착했는지에 대한 여부를 판단할 수 있으며, 대답이 없는 경우 패킷을 다시 전송해 손실을 방지한다.
UDP
- User Datagram Protocol
- OSI 참조 모델의 4계층인 전송 계층에서 사용되는 네트워크 프로토콜이다.
- 비연결 방식의 통신 기능을 제공한다. (이때 연결이 없다는 것은 송신 측에서 수신 측의 수신 여부와 상관없이 일방적으로 데이터를 보내고 끝내는 전송 방법을 의미)
- 상위 계층에서 수신한 데이터를 패킷으로 분할해 IP를 통해 전송만 할 뿐, TCP처럼 수신 확인은 하지 않는다.
→ 수신 측은 데이터가 정확한지 알 수 없고, 순서도 보장할 수 없으며, 분실되어도 알 수 없다. - 따라서 통신의 신뢰성은 낮지만, TCP보다 가볍고 속도가 빠르다는 특징이 있다.
- 주로 실시간성이 중요하거나 데이터의 신뢰성이 굳이 보장되지 않아도 되는 응용프로그램에서 UDP를 사용한다.
- 예) 시간적 연속성이 중요한 응용프로그램 : 동영상, 음성 전송
패킷
- 3계층에서 만들어지는 통신 데이터의 단위
- 통신 데이터를 패킷이라는 단위로 작게 분할하여 송수신하는 통신을 패킷 통신이라 한다.
- 패킷에는 여러 정보가 포함되는데, 이 정보는 소포에 붙이는 꼬리표 같은 것이다.
- 송신지와 수신지의 주소 같은 속성 정보 포함 → 이 정보를 가지고 네트워크를 통해 패킷이 올바른 목적지에 전달
- 패킷이 사용하는 네트워크 프로토콜에 대한 정보 포함 → 이 정보를 가지고 여러 네트워크 프로토콜이 동일한 네트워크 회선상에 혼재가 된 상태에서도 이용 가능
정리하자면, 고객(응용프로그램)이 보내고 싶은 물건(통신 데이터)은 작은 소포(패킷)으로 분할되고 분실되지 않도록 소포에 꼬리표를 붙인다. 이때 꼬리표는 소포의 배송을 담당하는 업체(네트워크 프로토콜)가 지정한 것을 사용한다.
데이터 단위
• 세그먼트(Segment) : 데이터를 일정한 길이로 분할한 덩어리로, 4계층(TCP, UDP)에서 만들어짐
• 패킷(Packet) : 세그먼트를 목적지로 전달하기 위해 IP 주소를 포함한 헤더가 붙은 형태로, 3계층(IP)에서 만들어짐
• 프레임(Frame) : 패킷을 목적지로 전달하기 위해 MAC 주소를 포함한 헤더가 붙은 형태로, 2계층에서 만들어짐
노드
- 네트워크에 연결되어 있는 네트워크 기기나 네트워크의 연결 지점을 말한다.
- 10 노드 = "네트워크에 10대의 기기가 연결되어 있다"
IP 주소
- 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 식별 번호이다.
- IP 주소를 이용하여 수신자를 향해 예정된 목적지로 데이터가 전달된다.
(쉽게 말해 집 주소를 컴퓨터 용으로 디지털 숫자로 나타낸 네트워크 주소라고 생각하면 된다.) - 현재 IP 주소는 32비트 숫자로 표현하는 IPv4가 일반적이지만, 이 주소가 부족해짐에 따라 128비트 숫자로 표현하는 IPv6로의 이전이 진행되고 있다.
- 예) 192.168.0.1 - IPv4
- IP 주소의 내용
- 네트워크 별로 나뉘는 네트워크 주소
- 해당 네트워크 내에서 컴퓨터를 식별하기 위한 호스트 주소
서브넷 마스크
- 원래 하나의 네트워크가 작은 조각으로 쪼개져 있는 경우, 작은 네트워크 조각을 서브넷(subnet)이라 한다.
- 서브넷 마스크(subnet mask)는 이러한 서브넷을 표현하기 위한 값이다.
- 32비트 숫자로 1의 비트는 네트워크 부분을, 0의 비트는 호스트 부분을 나타낸다.
- IP 주소는 네트워크 부분과 호스트 부분으로 나뉘는데, 앞에서부터 몇 비트까지 네트워크 주소로 사용할지 정의하기 위해 사용한다.
- 서브넷 마스크에 의해 호스트 주소 부분 중 몇 개의 비트를 네트워크 주소 부분으로 재정의하여, 단일 네트워크를 서브넷으로 구분할 수 있다.
포트 번호
- 프로그램이 통신하는 번호, 쉽게 말해 프로그램의 연결 장소이다.
- 네트워크의 어느 곳에 존재하는 컴퓨터인지? → IP 주소
- 그 컴퓨터의 어느 프로그램에 전달할 패킷인가? → Port 주소
- 프로그램이 네트워크에서 통신할 경우 접속 장소로 포트를 열고, 상대방의 IP 주소의 포트로 패킷을 송신하거나 수신한다.
- TCP/IP에 프로그램(서비스)별로 기본 포트가 정해져 있다.
도메인
- 인터넷에 연결된 컴퓨터를 사람이 쉽게 기억할 수 있도록 문자로 표현한 인터넷 주소
- 네트워크 주소인 IP 주소는 아무런 의미가 없는 숫자 배열로 되어있어 사람이 기억하기가 어렵다. 이를 위해 각 IP 주소에 사람이 기억하기 쉬운 문자열로 표현한 이름을 부여할 수 있는데, 이것이 도메인이다.
- IP 주소 : 49.236.150.128
- 도메인 이름 : www.gitbut.co.kr
- 도메인 이름은 실제 주소와 비슷한 계층 구조를 가진다.
IPv6
- Internet Protocol version 6
- TCP/IP 네트워크에서 사용되고 있는 3계층(네트워크 계층) 프로토콜인 IP의 차세대 규격
- 기존 32비트의 IPv4 주소가 고갈되는 문제를 해결하기 위해 개발된 새로운 128비트 체계의 무제한 인터넷 프로토콜 주소이다.
- 16비트 단위로 구분하며, 각 단위는 16진수로 변환되어 콜론(:)으로 구분하여 표기한다.
Reference
기타미 류지 ⌜그림으로 이해하는 네트워크 용어⌟
'💻 Computer Science > 네트워크' 카테고리의 다른 글
HTTP의 GET과 POST (0) | 2024.02.19 |
---|---|
[Network] 인터넷 기술 (0) | 2023.03.03 |
[Network] 인터넷 기초 (0) | 2023.02.22 |
[Network] 서비스와 프로토콜 (0) | 2023.02.15 |
[Network] 하드웨어 (0) | 2023.02.03 |
[Network] 광역 통신망 (2) | 2023.01.28 |
[Network] 근거리 통신망 (0) | 2023.01.17 |
[Network] 네트워크 개론 (0) | 2023.01.04 |