본문 바로가기
네트워크

TCP/IP 프로토콜

by 송파감자 2023. 5. 11.

벌써 과정의 50%를 듣게 된 오늘이었고, 눈 깜빡하니까 혼빠진 하루가 끝났다.😂

(국비지원으로 에티버스러닝에서 K-Digital 트레이닝을 하고 있다)

 

오늘 처음 TCP/IP 프로토콜에 대해 배웠다. 내용이 넘 어려웠는데, 조금이라도 더 이해하고자 아래와 같이 정리해보겠다. 아래 내용은 수업+책(TCP/IP소켓프로그래밍_김선우)을 참고하여 정리했당

 

 

TCP/IP


  • Trasmission Control Protocol / Internet Protocol
  • 컴퓨터가 인터넷 같은 네트워크를 통해 통신하게 하는 일련의 규칙
  • (컴퓨터가 서로 대화하는데 사용하는 언어라고 생각하기)
  • TCP
    • 데이터를 작은 패킷으로 분해해서 패킷이 올바른 순서로 전송함
    • 발신자와 수신자 사이의 연결을 설정하고, 수신자를 압도하지 않게 흐름 제어를 해서 오류 감지를
  • IP
    • 서로 다른 네트워크에서 패킷의 주소 지정과 라우팅을 처리함
    • 네트워크의 장치에 고유한 IP주소를 할당해서 데이터가 소스에서 대상으로 이동하는 가장 효율적인 경로를 결정함

 

 

TCP / IP 프로토콜 구조


-> 면접 때 꼭 물어본다는 개념🔥

(4->3->2->1순으로 보셔용)

 

1. 응용계층

  • 전송계층을 기반으로 하는 다수의 프로토콜과 이 프로토콜을 사용하는 응용프로그램을 포괄함!
  • 네트워크 프로그램도 여기에 속함

---------------(우린 응용 계층을 다루고, 아래 애들은 OS가 해결해준다)---------------

 

2. 전송계층

  • 최종 통신 목적지를 지정하고 오류없이 데이터 전송하는 역할을 함
  • 통신의 최종목적지는 호스트가 아닌 호스트에서 실행되는 프로세스(응용프로그램)임
  • 전송계층에서 프로세스를 지정하는 16비트 주소를 사용하는데, 이걸 Port 번호라고 부름
  • 데이터 손실 또는 손상을 검출해서 잘못된 데이터가 목적지에 전달되지 않도록함
  • 전송계층에 해당하는 인터넷프로토콜은 TCP와 UDP가 있음
TCP UDP
연결형프로토콜 비연결형 프로토콜
신뢰성 있는 데이터 전송 신뢰성 없는 데이터 전송
일대일 통신 일대일 통신/ 일대다 통신
데이터 경계  구분 안 함(Byte Stream Service) 데이터 경계 구분함(Datagram Service)

 

3. 인터넷계층

  • 네트워크 접근계층의 도움을 받아 IP주소와 라우팅사용해서  데이터를 목적지까지 전달함
  • 물리주소 대신  IP주소를 사용함
  • IP 주소는 전세계적으로 유일성 보장함
  • 다만 신뢰성은 없음(unreliable)-> 데이터에 문제 생기면 목적지에 도달 못할 수 있음, 도달해도 데이터 내용 손상 가능성 있음

 

4. 네트워크 엑세스

  • 물리적 네트워크를 통한 실제 데이터 송수신 담당
  • 네트워크 접근 계층에서는 물리적주소를 사용해서 통신함

내 컴퓨터의 물리적 주소 찾는 방법!

 

 

패킷(Packet)?


  • (네트워크에서 사용하는 작게 분할된 데이터 조각으로 네트워크에서 전송되는 데이터의 기본 단위)
  • 데이터 전송하려면 각 프로토콜에서 정의한 제어 정보가 필요함(IP주소, 포트번호, 오류 체크 등)
  • 제어정보는 위치에 따라 앞에 붙는 헤더(Header)랑 뒤에 붙는 트레일러(Trailer)로 나뉨
  • 데이터는 이런 제어 정보가 결합한 형태로 전송되며, 이걸 패킷!이라고 부름
  • 즉, 패킷은 제어정보+데이터

 

 

클라이언트, 서버


  • 네트워크 프로그램은 클라이언트-서버 모델이 일반적
  • 서비스를 요청하는 쪽이 클라이언트
    • 클라이언트가 서버에 접속하려면 서버의  IP주소와 포트 번호를 알고 있어야 함
  • 클라이언트가 요청한 서비스를 처리하는 쪽이 서버
    • 서버는 클라이언트 주소 미리 알 필요 없음
    • 클라이언트가 보낸 패킷에 클라이언트의 주소 정보가 들어가 있으니까!

 

 

루프백 주소


  • 시스템 자신을 나타내는 주소로 내부적으로 사용
  • 내부적으로 데이터를 보내고 받을 수 있어서 소프트웨어와 네트워크 구성 테스트 및 문제 해결하는데 도움됨!
  • IPv4에서는 127.0.0.1
    • IPv4? 인터넷 프로토콜 버전4 = IP의 네번째 버전
      • 마침표로 구분된 4개의 숫자 그룹 형식으로 표현되는 32비트 숫자
      • 사용가능한 주소의 고갈 문제 발생.. 그러나 아직도 널리 사용되고 있음
  • IPv6에서는 0:0:0:0:0:0:0:1
    • IPv6? 인터넷 프로토콜의 최신버전으로 IPv4를 계승해서 설계
      • IPv4의 주소고갈 문제 해결하고자 개발됐음
      • 128비트 주소 공간 사용함