inblog logo
|
chodong
    java

    059_TCP를 이용한 통신

    Jan 19, 2024
    059_TCP를 이용한 통신

    프로토콜(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

    chodong

    RSS·Powered by Inblog