프로토콜과 IP, TCP, UDP 프로토콜에 대하여

Jeongtae Kim·2022년 6월 10일
0

네트워크

목록 보기
5/8
post-thumbnail

📒 프로토콜이란 무엇일까?

의미
컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 인간에 비유하면 언어라고 할 수 있는데 한국인이 미국인과 소통할 때 한국어 또는 영어로 언어를 통일해야 의사소통을 할 수 있는 것처럼 컴퓨터는 프로토콜이라는 양식과 규칙에 따라 통신을 하는 것이다.

📌 프로토콜의 기본 요소

  • 구분(Syntax)
    데이터를 어떻게 구성할 지에 대한 형식(아날로그와 디지털), 부호화(유니코드와 ASCII), 신호 레벨 등에 대한 형식(0과 1의 전압세기와 표현방식)을 규정한다.
  • 의미(Semantic)
    두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 데이터에 대하여 구체적으로 어떻게 제어할 것인지에 대한 처리 방법과 에러가 발생했을 때 어떻게 처리할 것인가에 대한 정보를 규정한다.
  • 타이밍(Timing)
    두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정한다.

📌 프로토콜의 구성

  • 물리적 측면
    데이터 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격같은 물리적 요소에 관한 규약으로 RS-232C, V.21 ~ V.90 등이 해당된다.

  • 논리적 측면
    전송정보의 집합체인 프레임의 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 데이터 전송의 절차 등에 관한 규약으로 TCP/IP, FTP, Usenet, Gopher 등이 해당된다.

    • 폐쇄적인 프로토콜
      자사 장치들끼리 통신하기 위한 독자적인 통신 규약이다. 자세한 규격이 공개되어 있지 않아서 크래킹 위협에 상대적으로 안전하다. ex) IBM의 SNA, SDLC 프로토콜
    • 공개된 범용 프로토콜
      여러 장치들에 쓰이는 널리 알려진 규격이다. 규격이 널리 공개되어 있어 컴퓨터와 네트워크 크래킹에 취약하다. ex) 인터넷의 TCP/IP

📌 계층과 함께 보는 프로토콜의 종류


출처: https://forum.huawei.com/enterprise/en/osi-and-tcp-ip-models-with-protocols/thread/763571-861

📌 프로토콜의 기능

프로토콜이 많은 만큼 프로토콜의 기능도 굉장히 많다. 그 중 일부만 소개하려 한다.

  1. 단편화와 재조립: 송신측에선 데이터 블록을 크기가 작은 블록으로 쪼개서 전송하고, 수신측에선 쪼개진 데이터를 원래의 데이터로 복원하는 것이다.
  2. 캡슐화: 상위 계층의 데이터에 헤더, 트레일러 같은 제어 정보를 추가하여 하위계층으로 내려보내는 것이다. 제어 정보에는 주소, 에러검출 코드 등이 있다.
  3. 연결 제어: 통신 개체 간의 연결을 제어하는데 연결 설정 -> 데이터 전송 -> 연결 해제 3단계이다. 연결형과 비연결형 방식이 있는데 연결형은 세션이 만들어진 후 계속적으로 통신이 일어나 순서가 보장된다. 비연결형 방식은 순서보장이 되지 않는다.
  4. 흐름 제어: 데이터를 보내고 중지하고 재전송하는 등을 제어하는 부분이다. 데이터 양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 것이다.
  5. 오류 제어: 데이터 전송 중 발생할 수 있는 오류를 패리티비트 오류 검출 방식같은 방법으로 오류를 검출한 뒤 정정하거나 재전송을 요구한다.
  6. 동기화: 두 개의 통신 개체가 동시에 같은 상태(시작, 종류 검사 등)를 유지하도록 하는 것이다.

출처

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 주소를 찾아 패킷이라는 통신 단위로 데이터를 전달하는 것이다.

인터넷 프로토콜의 한계점은 비신뢰성과 비연결성이다.

  • 비신뢰성은 인터넷 프로토콜이 전송만 할 뿐 데이터가 정확하게 갔는지 확인하지 않는 것이다.
  • 비연결성은 송신자와 수신자 사이에 연결을 확립하지 않고 데이터를 전송하는 방법이다.

"엥 그럼 IP 왜 씀? 왜 유명함?"

그래서 IP 프로토콜의 한계를 극복한 TCP 프로토콜은 사용한다. TCP 프로토콜은 밑에서 서술한다.

📌 IP 주소

IP 주소란 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다. IP또한 여러 분류로 나눠진다.

  1. IPv4 vs IPv6
    원래 표준 프로토콜은 IPv4였는데 IPv4는 주소 공간 고갈 문제를 겪게 되어 IPv6가 나타났다. IPv4의 주소 길이는 32 비트(4바이트)인 반면, IPv6의 주소길이는 128 비트(16바이트)인 만큼 주소 공간 고갈 문제를 없어지게 했다. 또한, IPv6가 네트워크 속도, 보안적인 부분 등 여러 면에서 뛰어나지만 기존의 주소 체계를 변경하는데 큰 비용이 들어 상용화 되지 못했다. 그래서 아직 흔하게 IPv4를 보고 있는 것이다.
  2. 고정IP vs 유동IP
    말 그대로 고정 IP는 컴퓨터에 고정적으로 부여된 IP이고, 유동 IP는 변하는 IP이다. 고정 IP는 한번 부여받으면 IP를 반납하기 전까지 해당 IP를 다른 장비에 부여할 수 없게 된다. IPv4가 모자란 상황인만큼 고정 IP의 갯수는 정해져 있고 가격도 비싸다. 서버 혹은 VPN은 아이피가 변경되면 안되기 때문에 사용한다. 유동 IP는 일정한 주기 또는 사용자들이 인터넷에서 접속할 때마다 사용하지 않는 IP주소를 임시로 발급해주는 것이다. 일반 가정 대부분이 유동 IP를 사용한다.
  3. 공인IP vs 사설IP
    SKT, KT, LG같은 인터넷 회사들인 ISP가 부여받고, 위 회사에 가입을 통해 IP를 제공받아 인터넷을 사용하게 되는데 이렇게 발급받은 IP를 공인IP라고 한다. 공인IP는 인터넷 상에서 유일한 IP주소이며 외부에 공개될 수 있어 방화벽 같은 보안 프로그램이 필요하다. 공유기에 연결된 각각의 네트워크 기기에는 사설IP를 할당한다. 사설IP는 공유기를 통해 할당받기 때문에 하나의 네트워크 안에서 유일하며 외부 접근은 불가능하다.

출처

https://dreamcoding.tistory.com/33
https://study-recording.tistory.com/7
https://velog.io/@hidaehyunlee/%EA%B3%B5%EC%9D%B8Public-%EC%82%AC%EC%84%A4Private-IP%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

📒 TCP와 UDP

OSI 7계층 중 전송 계층에서 TCP와 UDP 프로토콜이 존재하며 중요한 역할을 담당하고 있다. 이 둘의 특징과 공통점, 차이점을 알아보자.

📌 TCP

의미
서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜이다.

IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 된다. TCP는 연결형 프로토콜이다. 즉, 클라이언트와 서버가 연결된 상태여야만 데이터를 주고받을 수 있다. TCP는 가상 회선 방식을 제공하여 패킷을 전송하는 논리적 경로를 배정할 수 있다. 모든 데이터는 고정된 통신 선로를 통해 순차적이고 정확하고 안정적으로 전달할 수 있다. 덕분에 신뢰성 있는 데이터를 전송할 수 있지만 반드시 연결이 형성되어야 하고 1:1 통신만 가능하며 정확한만큼 데이터 전송속도는 떨어진다.

📌 UDP

의미
보내거나 받는다는 신호 없이 보내는 쪽에서 일방적으로 데이터를 전달하는 프로토콜이다.

UDP는 비연결형 프로토콜이다. 따라서 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신할 수 있다. 또한, 연결을 위해 할당되는 논리적 경로가 없어 각각의 패킷은 다른 경로로 전송되며 독립적인 관계를 지니게 된다. 이런 것을 데이터그램 방식이라고 한다. 연결을 설정하고 해제하는 과정도 없고 패킷에 순서도 부여하지 않아 속도가 빠르며 네트워크 부하가 적고 1:N, N:N 통신도 가능하다. 하지만 데이터의 신뢰성은 낮고 독립적으로 패킷을 관리하기 힘들다는 단점이 있다.

📌 TCP와 UDP의 비교와 대조

  • 공통점
    설명하진 않았지만 포트 번호를 이용하여 주소를 지정해야 하며 헤더와 데이터에 대한 오류를 체크해야 한다.
  • 차이점
TCPUDP
연결방식연결형 프로토콜비연결형 프로토콜
패킷 교환 방식가상 회선 방식데이터그램 방식
전송 순서일정함일정하지 않음
수신 여부 확인확인함확인하지 않음
통신 방식1:11:1, 1:N, N:N
신뢰성높음낮음
속도느림빠름

출처

https://mangkyu.tistory.com/15
https://coding-factory.tistory.com/614
https://choseongho93.tistory.com/3

profile
유용할지도 모른다.

1개의 댓글

comment-user-thumbnail
2022년 6월 23일

유익한 정보네요 감사합니다 :)

답글 달기