[SeSAC X 코딩온] 웹개발자 풀스택 과정 16주차 회고 (2) - 1 | Socket - TCP/IP 통신

옹잉·2024년 4월 12일
0

💡 4/12 Socket

📍 TCP/IP

TCP/IP는 컴퓨터 네트워크에서 데이터 통신을 위한 프로토콜 스택으로, 네트워크 간의 데이터 교환을 가능하게 하는 중요한 기술

  • 데이터를 분할하여 보냄.
  • 정확한 전송을 보장하며 데이터의 경로를 지정하는 역할.

TCP(Transmission Control Protocol)

TCP는 데이터를 신뢰성 있게 전송하기 위한 프로토콜

  • 신뢰성 : 데이터의 손실이나 손상을 최소화하고, 데이터의 순서를 보장
  • 연결 지향 : 데이터를 주고받기 전에 송신자와 수신자 간에 연결
  • 흐름 제어 : 데이터의 흐름을 제어하여 수신자가 처리할 수 있는 속도에 맞춰 데이터를 전송
  • 혼잡 제어 : 네트워크의 혼잡 상태를 감지하고 조절하여 네트워크 성능을 유지

IP(Internet Protocol)

인터넷상에서 데이터를 주고받기 위한 통신 규약(약속)

  • 패킷 기반 : 데이터를 작은 패킷 단위로 나누어 전송하고, 각 패킷은 목적지 주소와 출발지 주소 정보를 포함
  • 비연결성 : 패킷은 독립적으로 처리되며, 수신자와의 직접적인 연결이 필요하지 않음.
  • 라우팅 : 각 라우터가 패킷의 경로를 결정하여 목적지까지 전달
  • IP 주소 : IP는 각 컴퓨터를 식별하기 위한 IP 주소를 사용

TCP/IP 4계층

이 모델은 전송 계층에서 TCP(Transmission Control Protocol)와 인터넷 계층에서 IP(Internet Protocol)를 주요 프로토콜로 사용하기 때문에 TCP/IP라는 이름이 붙었다.

✅ Network Interface Layer (or Network Access Layer)

  • OSI 7계층의 물리계층과 데이터 링크 계층에 해당
  • 이 계층은 물리적인 네트워크와 상호 작용하며, 데이터를 전기 신호로 변환하거나 광 신호로 변환하여 전송
  • 데이터를 프레임으로 나누어 전송하고 프레임을 수신하여 물리적인 신호로 변환하는 역할을 수행
  • 수신된 프레임에서 오류를 검출
  • MAC (Media Access Control) 주소를 관리
  • Ethernet이나 Wi-Fi 같은 기술이 이 계층에 해당

✅ Internet Layer

  • OSI 7계층의 네트워크 계층에 해당
  • 이 계층은 데이터 패킷의 라우팅과 논리적인 주소 지정을 담당
  • IP(Internet Protocol)가 이 계층에서 작동하며, 패킷의 출발지와 목적지 IP 주소를 사용하여 라우팅을 수행
  • IP 주소와 관련된 서비스인 ARP (Address Resolution Protocol)와 같은 프로토콜도 이 계층에서 동작

✅ Transport Layer

  • OSI 7계층의 전송 계층에 해당
  • 이 계층은 데이터의 신뢰성과 흐름 제어를 관리
  • TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)가 이 계층에서 작동

UDP(User Datagram Protocol)

  • UDP는 비연결성 프로토콜로, 데이터의 신뢰성은 낮지만 속도가 빠르고 간편
  • 데이터그램 단위로 데이터를 전송하며, 순서 보장 및 데이터 신뢰성은 보장되지 않음.
  • 데이터 전송에 관련된 작업이 단순
  • 흐름 제어나 혼잡 제어 메커니즘이 없어서 오버헤드가 적음
  • VOIP, 스트리밍, 온라인 게임 등에서 데이터 전송이 빈번하게 발생하는 경우에 사용됩니다.

✅ Application Layer

  • OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당
  • 최종 사용자에게 서비스를 제공하기 위한 응용 프로그램과 사용자 인터페이스가 이 계층에 위치
  • 이 계층은 다양한 프로토콜을 포함하며, HTTP, FTP, SMTP, POP3, IMAP, DNS 등의 프로토콜이 이 계층에서 동작
  • 각 프로토콜은 특정한 응용 서비스를 제공하기 위한 목적으로 사용

왜 TCP/IP를 학습했을까?

Socket 프로그래밍은 네트워크 통신을 가능하게 하는 기본적인 방법 중 하나로, 인터넷 또는 LAN에서 데이터를 교환하기 위해 사용된다.

TCP/IP는 인터넷의 핵심 프로토콜로, 각기 다른 네트워크 환경에서도 통신할 수 있게 해주는 표준화된 방법을 제공한다.

이에 따라 네트워크의 기본적인 작동 원리를 이해하고, Socket 프로그래밍 시 애플리케이션 요구 사항(신뢰성, 속도 등)에 맞게 TCP 또는 UDP 중 적절한 프로토콜이 무엇인지 결정할 수 있도록 위의 내용을 학습했다.

profile
틀리더라도 🌸🌈🌷예쁘게 지적해주세요💕❣️

0개의 댓글