전 블로그에 올린 글을 이전했습니다.
https://velog.io/@arcokim/프로토콜
프로토콜과 IP, TCP, UDP 프로토콜에 대하여
📒 프로토콜이란 무엇일까? 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다.
velog.io
프로토콜
컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계입니다. 인간에 비유하면 언어라고 할 수 있는데 한국인이 미국인과 소통할 때 한국어 또는 영어로 언어를 통일해야 의사소통을 할 수 있는 것처럼 컴퓨터는 프로토콜이라는 양식과 규칙에 따라 통신을 하는 것입니다.
프로토콜의 기본 요소
구분(Syntax)
데이터를 어떻게 구성할 지에 대한 형식(아날로그와 디지털), 부호화(유니코드와 ASCII), 신호 레벨 등에 대한 형식(0과 1의 전압세기와 표현방식)을 규정합니다.
의미(Semantic)
두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 데이터에 대하여 구체적으로 어떻게 제어할 것인지에 대한 처리 방법과 에러가 발생했을 때 어떻게 처리할 것인가에 대한 정보를 규정합니다.
타이밍(Timing)
두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정합니다.
프로토콜의 구성
물리적 측면
데이터 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격같은 물리적 요소에 관한 규약으로 RS-232C, V.21 ~ V.90 등이 해당됩니다.
논리적 측면
전송정보의 집합체인 프레임의 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 데이터 전송의 절차 등에 관한 규약으로 TCP/IP, FTP, Usenet, Gopher 등이 해당됩니다.
- 폐쇄적인 프로토콜
자사 장치들끼리 통신하기 위한 독자적인 통신 규약입니다. 자세한 규격이 공개되어 있지 않아서 크래킹 위협에 상대적으로 안전합니다. ex) IBM의 SNA, SDLC 프로토콜 - 공개된 범용 프로토콜
여러 장치들에 쓰이는 널리 알려진 규격입니다. 규격이 널리 공개되어 있어 컴퓨터와 네트워크 크래킹에 취약합니다. ex) 인터넷의 TCP/IP
계층과 함께 보는 프로토콜의 종류
프로토콜의 기능
프로토콜이 많은 만큼 프로토콜의 기능도 굉장히 많습니다. 그 중 일부만 소개하려 합니다.
단편화와 재조립
송신측에선 데이터 블록을 크기가 작은 블록으로 쪼개서 전송하고, 수신측에선 쪼개진 데이터를 원래의 데이터로 복원하는 것입니다.
캡슐화
상위 계층의 데이터에 헤더, 트레일러와 같은 제어 정보를 추가하여 하위 계층으로 내려보내는 것입니다.
연결 제어
통신 개체 간의 연결을 제어하는 것이며 연결 설정 -> 데이터 전송 -> 연결 해제 3단계로 이루어집니다. 연결형과 비연결형 방식이 있는데 연결형은 세션이 만들어진 후 계속적으로 통신이 일어나 순서가 보장됩니다. 비연결형 방식은 순서보장이 되지 않습니다.
흐름 제어
데이터 전송, 재전송 등을 제어하는 부분입니다. 데이터 양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 것입니다.
오류 제어
데이터 전송 중 발생할 수 있는 오류를 패리티비트 오류 검출 방식같은 방법으로 오류를 검출한 뒤 정정하거나 재전송을 요구합니다.
동기화
송신 개체와 수신 개체가 동시에 같은 상태를 유지하도록 하는 것입니다.
프로토콜 참고
https://computer-science-student.tistory.com/377
https://helloworld-88.tistory.com/146
https://cainstorm.com/92
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=qorckddls010&logNo=220971522531
IP (Internet Protocol)
송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보룰 주고 받는데 사용하는 정보의 규약(프로토콜)입니다. 네트워크 계층에 속하며 패킷을 IP 주소에 따라 목적지에 전송하는 것을 담당합니다.
IP의 구성과 역할
인터넷 프로토콜 또한 헤더와 데이터를 합쳐 보내게 됩니다. 헤더에는 송수신자 IP주소, 버전, 헤더길이 등 데이터를 목적지까지 전송하기 위해 많은 값이 필요하게 됩니다.
인터넷 프로토콜의 역할은 지정된 IP 주소를 찾아 패킷이라는 통신 단위로 데이터를 전달하는 것입니다.
인터넷 프로토콜의 한계점은 비신뢰성과 비연결성입니다.
비신뢰성
인터넷 프로토콜이 전송만 할 뿐 데이터가 정확하게 갔는지 확인하지 않는 것입니다.
비연결성
송신자와 수신자 사이에 연결을 확립하지 않고 데이터를 전송하는 방법입니다.
이러한 한계점때문에 TCP 프로토콜과 같이 사용합니다. TCP 프로토콜은 밑에서 서술합니다.
IP 주소
IP 주소란 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소입니다. IP 또한 여러 분류로 나눠집니다.
IPv4 vs IPv6
- 원래 표준 프로토콜은 IPv4였는데 IPv4는 주소 공간 고갈 문제를 겪게 되어 IPv6가 나타났습니다.
- IPv4의 주소 길이는 32 비트(4바이트)인 반면, IPv6의 주소길이는 128 비트(16바이트)인 만큼 주소 공간 고갈 문제를 없어지게 했습니다.
- IPv6가 네트워크 속도, 보안적인 부분 등 여러 면에서 뛰어나지만 기존의 주소 체계를 변경하는데 큰 비용이 들어 상용화 되지는 못 하고 있습니다. 그래서 현재는 IPv4를 많이 접하고 있는 것입니다.
고정 IP vs 유동 IP
- 말 그대로 고정 IP는 컴퓨터에 고정적으로 부여된 IP이고, 유동 IP는 변하는 IP입니다.
- 고정 IP는 한번 부여받으면 IP를 반납하기 전까지 해당 IP를 다른 장비에 부여할 수 없습니다. IPv4가 모자란 상황인만큼 고정 IP의 갯수는 정해져 있고 가격도 비쌉니다. 서버 혹은 VPN은 아이피가 변경되면 안 되기 때문에 사용합니다.
- 유동 IP는 일정한 주기 또는 사용자들이 인터넷에서 접속할 때마다 사용하지 않는 IP주소를 임시로 발급해주는 것입니다. 일반 가정 대부분이 유동 IP를 사용합니다.
공인 IP vs 사설 IP
- SKT, KT, LG같은 인터넷 회사들인 ISP가 부여받고, 위 회사에 가입을 통해 IP를 제공받아 인터넷을 사용하게 되는데 이렇게 발급받은 IP를 공인 IP라고 합니다. 공인 IP는 인터넷 상에서 유일한 IP주소이며 외부에 공개될 수 있어 방화벽 같은 보안 프로그램이 필요합니다.
- 공유기에 연결된 각각의 네트워크 기기에는 사설 IP를 할당합니다. 사설 IP는 공유기를 통해 할당받기 때문에 하나의 네트워크 안에서 유일하며 외부 접근은 불가능합니다.
IP 참고
https://dreamcoding.tistory.com/33
https://study-recording.tistory.com/7
https://velog.io/@hidaehyunlee/공인Public-사설Private-IP의-차이점
TCP & UDP
OSI 7계층 중 전송 계층에서 TCP와 UDP 프로토콜이 존재하며 중요한 역할을 담당하고 있습니다. 이 둘의 특징과 공통점, 차이점을 알아봅시다.
TCP
서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 연결형 프로토콜입니다.
- IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 됩니다.
- 클라이언트와 서버가 연결된 상태여야만 데이터를 주고받을 수 있습니다.
- 가상 회선 방식을 제공하여 패킷을 전송하는 논리적 경로를 배정할 수 있으며, 모든 데이터를 고정된 통신 선로를 통해 순차적이고 정확하고 안정적으로 전달할 수 있습니다.
- 신뢰성 있는 데이터를 전송할 수 있지만 반드시 연결이 형성되어야 하고, 1:1 통신만 가능하며, 정확한만큼 데이터 전송속도는 떨어집니다.
UDP
보내거나 받는다는 신호 없이 보내는 쪽에서 일방적으로 데이터를 전달하는 비연결형 프로토콜입니다.
- 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신할 수 있습니다.
- 연결을 위해 할당되는 논리적 경로가 없어 각각의 패킷은 다른 경로로 전송되며 독립적인 관계를 지니게 됩니다. 이런 것을 데이터그램 방식이라고 합니다.
- 연결을 설정하고 해제하는 과정도 없고 패킷에 순서도 부여하지 않아 속도가 빠르며 네트워크 부하가 적고 1:N, N:N 통신도 가능합니다.
- 데이터의 신뢰성은 낮고 독립적으로 패킷을 관리하기 힘들다는 단점이 있습니다.
TCP & UDP 비교
공통점
포트 번호를 이용하여 주소를 지정해야 하며 데이터 오류 검사를 위한 체크섬이 존재합니다.
차이점
TCP | UDP | |
연결 방식 | 연결형 프로토콜 | 비연결형 프로토콜 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
전송 순서 | 보장함 | 바뀔 수 있음 |
수신 여부 확인 | 확인함 | 확인하지 않음 |
통신 방식 | 1 : 1 | 1 : 1, 1 : N, N : N |
신뢰성 | 높음 | 낮음 |
속도 | 느림 | 빠름 |
TCP & UDP 참고
https://mangkyu.tistory.com/15
https://coding-factory.tistory.com/614
https://choseongho93.tistory.com/3
'Network' 카테고리의 다른 글
[Network] 서브넷, 서브넷마스크(+ CIDR), 서브넷팅 (3) | 2023.10.04 |
---|---|
[Network] 포트(& 포트포워딩), 게이트웨이 (1) | 2023.09.28 |
[Network] TCP / IP 4계층 (0) | 2023.09.23 |
[Network] 인터넷 (0) | 2023.09.21 |
[Network] 네트워크 (0) | 2023.09.20 |