프로토콜(Protocol)
- 컴퓨터나 네트워크가 상호 간에 데이터를 신뢰성 있게 주고 받기 위한 규칙과 절차이다.
- 무엇을, 어떻게, 언제 통신 할 것 인지, 정보의 교환 형식과 송수신 방법 등이 규정되어 있다.
- 프로토콜로 인해 컴퓨터의 기종이 달라도 서로 통신이 되고 데이터의 의미를 일치 시켜 원하는 동작을 시킬 수 있게 된다.
TCP/IP 통신 프로토콜의 5계층
응용 프로그램 계층 (applicatin layer) ⬇️ |
전송 계층 (transport layer) ⬇️ |
네트워크 계층 (network layer) ⬇️ |
데이터 링크 계층 (datalink layer) ⬇️ |
물리적 계층 (physical layer) ⬇️ |
프로토콜을 계층적으로 정의하게 되면 프로토콜의 각 부분들을 독립적으로 설계하고
테스트할 수 있다.
하나의 레이어의 구현은 아래 레이어가 제공하는 서비스를 이용하여 이루어진다.
TCP(Transmission Control Protocol)
- 신뢰성 있게 통신하기 위하여 먼저 서로 간에 연결을 설정 후에 데이터를 보내고 받는 방식이다.
- 데이터를 받는 순서가 데이터를 보내는 순서와 동일하게 관리된다.
- 단점으로는 연결을 하는 과정과 연결을 해제하는 과정에 상당히 많은 시간이 걸린다. → 짧은 데이터를 보내는 경우에는 상당히 부담된다.
- 소켓을 연결의 양 끝점에 접속한다.
UDP(User Datagram Protocol)
- TCP와는 달리 데이터를 패킷으로 분할한 다음, 패킷에 주소를 붙여 데이터를 전송하는 방식이다.
- 신뢰도가 필요하지 않은 통신에 주소 사용한다. → 동영상 서비스, 게임의 캐릭터 이동 등
- 연결 절차가 필요 없어 빠르고 효율적인 통신이 가능하다.
포트(Port)
- 응용 프로그램이 사용하는 가상적인 통신 선로 이다.
- 모든 데이터의 주소는 특정 컴퓨터를 가리키는 IP 주소와 포트 번호로 구성된다.
- 0 ~ 65536 까지의 정수를 사용하여 표기된다.
- 0 ~ 1023까지는 미리 예약되어 있는 “well-known port” 이므로 1023 초과부터 번호를 사용한다.
소켓(Socket)
- TCP를 위한 구조이다.
- 연결을 위해 “연결 끝점(end point)”에 있어야 한다.
- 포트를 이용하여 만들어진다.
Share article