TCP/IP 프로토콜 개요(1_1)

왕윤성·2021년 6월 27일
0

네트워크와 소켓 프로그래밍

tcp/ip 프로토콜 개요

호스트 - 최종 사용자 응용 프로그램을 수행하는 주체.(pc, 노트북, 스마트폰)
라우터 - 호스트에서 생성된 데이터를 여러 네트워크를 거쳐 전송함으로써 서로 다른 네트워크에 속한 호스트 간에 데이터를 교환할 수 있게 하는 장비.

통신 프로토콜 - 통신을 위한 절차와 방법.

<계층별 기능 요약>

네트워크 접근 계층
물리적 네트워크를 통한 실제 데이터 송수신 담당.
물리 주소를 통해 통신하는데, 물리 주소는 네트워크 방식에 따라 다르며 상호 호환 안됨.

인터넷 계층
데이터를 목적지 호스트까지 전달하는 역할.
소프트웨어적으로 정의된 논리 주소인 ip주소를 사용. ip주소는 전세계적으로 유일성을 보장.
호스트를 유일하게지정하지만, 실제 통신을 하려면 전송 경로를 결정하고 그에 따라 데이터를 전달하는 절차가 필요 -> 이를 라우팅이라고 부른다.
라우팅은 데이터를 목적지까지 전달하는 일련의 작업.

전송 계층
최종 통신 목적지를 지정하고 오류 없이 데이터를 전송하는 역할
인터넷 계층에서 최종 목적지 호스트까지 보냈고, 전송 계층에서 해당 호스트에서 실행하고 있는 프로세스로 보낸다. 그래서 포트번호라는 게 있다.
포트 번호 - 프로세스를 지정하는 일종의 주소
전송 계층에서는 또한 데이터 손실, 손상을 검출함.
전송 계층에는 tcp, udp 프로토콜이 있다.

  • tcp
    연결형 프로토콜(연결 설정 후 통신 가능)
    신뢰성 있는 데이터 전송(데이터를 재전송함)
    일대일 통신(unicast)
    데이터 경계 구분 안 함(바이트 스트림 서비스)
  • udp
    비연결형 프로토콜(연결 설정 없이 통신 가능)
    신뢰성 없는 데이터 전송(데이터를 재전송하지 않음)
    일대일 통신(unicast), 일대다 통신(broadcast, multicast)
    데이터 경계 구분함(데이터그램 서비스)

응용 계층
전송 계층을 기반으로 한 다수의 프로토콜, 이 프로토콜을 사용하는 응용 프로그램을 포괄.

데이터 전송 원리

전송하려면 제어 정보(ip주소, 포트 번호, 오류 체크 코드)필요.
제어 정보가 앞에 붙으면 헤더, 뒤에 붙으면 트레일러
패킷 = 제어 정보 + 데이터

송신하는 쪽에서 응용 계층에서 데이터만 있는데, tcp거치면서 tcp헤더, ip거치면서 ip헤더, 이더넷 계층 거치면서 이더넷 헤더, 트레일러 붙음.

수신하는 쪽에서는 이더넷 -> ip -> tcp -> 응용 거치면서 헤더랑 트레일러 없앰.

ip주소와 포트 번호
ipv4는 32비트, ipv6는 128비트 값 사용.
ip주소는 전세계적으로 값이 유일.
라우터가 라우팅을 할때는 ip헤더에 포함된 수신자 ip 주소를 사용하며, 데이터를 받은 쪽에서 답장을 보낼 때는 ip 헤더에 포함된 송신자 ip 주소를 사용.
ip 주소는 호스트를 구별할 수 있지만 응요 프로세스는 식별 못함. 포트 번호로 응용 프로세스 식별. 하지만 여러 프로세스가 한 포트 번호 사용할 수도 있고, 한 프로세스가 여러 포트번호 사용할 때도 있다.

클라이언트 - 서버 모델
클라이언트 - 서비스를 요청하는 쪽
서버 - 클라이언트가 요청하는 서비스를 처리하는 쪽

만약 클라이언트 - 서버 모델이 아니라 그냥 프로그램 2개가 서로 접속하려면 두 프로그램이 반드시 실행 중이어야 함으로 문제점이 있다.

profile
개발자 입니다.

0개의 댓글