[Networking] TCP/IP

임수정·2024년 6월 27일

📝 Learning Log

목록 보기
6/47
post-thumbnail

📍 TCP/IP

📁 네트워크 기본 구조와 원리

  • 네트워크 : Net(망 안에서) Work(일을 하는)

  • 프로토콜 : 인터넷 상에서 컴퓨터 간의 데이터를 주고 받기 위한 약속된 형식 → 통신 규약

  • 서버 : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터(물리적) 또는 프로그램(소프트웨어적)

  • 클라이언트 : 네트워크를 통하여 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속 할 수 있는 응용 프로그램 또는 사용자 컴퓨터
    == 망을 통해서 클라이언트가 서버에 접속!!

📖 TCP/IP 4 Layer

  • 네트워크 엑세스 계층(Network Access Layer or Network Interface Layer)

    • 네트워크에 물리적으로 연결되는 하드웨어와 관련된 기능
    • 이더넷, Wi-Fi, PPP(Point-to-Point Protocol) 등과 같은 특정한 네트워크 기술
  • 인터넷 계층(Internet Layer)

    • IP(Internet protocol) 프로토콜을 기반으로 동작하며, 데이터 패킷 전송과 라우팅 담당
    • IP 주소 할당, 패킷 분할 및 조립, 패킷의 목적지까지의 경로 선택 등의 역할 수행
  • 전송 계층(Transport Layer)

    • TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)와 같은 프로토콜을 다룸
    • 데이터의 신뢰성 있는 전송 담당
    • 오류 검출 및 복구, 흐름 제어, 연결 관리 등을 수행
  • 응용 계층(Application Layer)

    • 사용자가 실제로 상호작용하는 응용 프로그램과 관련된 프로토콜을 다룸
    • HTTP(Hypertext Transfer Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol)

📖 TCP/IP Updated 모델

  • 1계층 물리계층(Physical Layer)
    • 전기적 특성을 이용해 디지털 시그널 → 아날로그 시그널로 바꾸고, 그 반대의 작업을 수행하는 계층
    • Just, 데이터를 전기적인 신호로 변환해서 주고 받는 기능만 담당, 에러는 관여 X
    • 통신 케이블을 통해 전기 신호를 사용하여 비트 스트림을 전송하는 계층
    • 컴퓨터가 사용하고 있는 데이터(이진수) 즉, 디지털 시그널을 다른 매체와 주고받기 위해서는 전압으로 바꿔줘야 하며, 전압을 받았으면 컴퓨터가 이해하고 사용할 수 있는 디지털 시그널 == 데이터(이진수)로 바꿔줘야 함
    • 장비 : 리피터, 허브, PHY 칩(하드웨어적 구현)
    • 프로토콜 데이터 단위 : 비트(bit)
  • 2계층 데이터 링크 계층(Data Link Layer)
    • 네트워크 계층에서 정보를 받아 주소와 제어정보를 헤더와 트레일러에 추가
    • 물리 계층을 통해 송수신 되는 정보의 오류와 흐름 관리
      MAC 주소를 가지고 통신 == 신뢰성 있는 전송을 보장하기 위한 계층
    • 물리계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 함
    • 데이터 앞 뒤에 특정한 비트열을 붙임(framing)
    • 흐름제어 : 송신 측과 수신 측의 속도 차이를 조정
    • 오류 제어 : 오류 검출과 회복, 오류가 검출되면 데이터 폐기
    • 순서 제어 : 프레임의 순서적 전송
    • 같은 네트워크 상의 여러 개의 컴퓨터를 연결하여 통신
    • 장비 : 랜카드, 브리지, 스위치
    • 프로토콜 데이터 단위 : 프레임(frame)
  • 3계층 네트워크 계층(Network Layer)
    • 네트워크를 논리적으로 구분하고 연결하는 계층
    • 전송 데이터를 목적지까지 경로를 찾아 전달
    • IP주소(논리적 주소)를 정하고, 이를 이용하여 경로를 찾고(Routing), 다음 라우터에게 패킷을 넘겨주며(Forwarding) 인터넷이 가능하게 만듦
    • IP주소 : 각 컴퓨터들이 갖는 고유한 주소
    • 라우팅(Routing): 데이터를 목적지까지 가장 안전하고 빠르게 전달
      • 라우터(Router)라우팅(Routing)
        라우터는 네트워크가 인터넷에 접속할 수 있도록 해주는 장치이며, 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 효율적인지 파악함. 경로 정하기 앞서 네트워크 식별을 위한 목적지 주소인 IP 주소를 확인하는데, 목적지 IP 주소까지 어떤 경로를 거쳐 데이터를 보낼지 결정하는 것을 라우팅이라고 한다.
    • 신뢰성과 흐름 제어 기능이 없기 때문에 신뢰성 확보를 위한 TCP와 같은 상위 전송 계층에 의존하는 계층
    • 장비 : 라우터, L3 Switch, IP 공유기
    • 운영체제(OS)의 커널에 소프트웨어적으로 구현
      • 운영체제 커널
        시스템의 핵심 부분으로, 하드웨어와 소프트웨어 간의 인터페이스 역할을 수행
        커널은 컴퓨터의 자원을 관리하기 때문에, 시스템 프로그램인 쉘을 사용하여 커널에 명령을 내림
        사용자 → 시스템 프로그램(shell) → 커널 → 컴퓨터 자원 접근
    • 프로토콜 데이터 단위 : 패킷
      • 패킷이란?
        컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해 특정 형태를 맞춰서 전송되는 네트워크 데이터 조각
  • 4계층 전송 계층(Transport Layer)
    • 사용자들 간(End to End) 신뢰성 있는 데이터를 주고받게 해주는 역할 == 오류 검출 및 복구, 흐름제어, 중복검사 등 수행
    • End to End 전송은 단순히 한 컴퓨터에서 다음 컴퓨터로의 전달이 아닌 송신 컴퓨터의 응용프로그램(프로세스)에서 최종 수신 컴퓨터의 응용프로그램(프로세스)으로의 전달을 의미
    • 데이터 전송을 위해 Port 번호 사용, 대표적인 프로토콜은 TCP/UDP
    • 장비 : 게이트웨이
    • 프로토콜 데이터 단위 : 세그먼트

      세그먼트란?
      프로그램에 정의된 특정 조건을 만족하는 영역을 구분하는 것
      코드, 데이터, 그리고 스택(stack)으로 알려져 있는 것을 포함
      브릿지, 라우터, 허브 또는 스위치 등에 의해 묶여있는 네트워크의 한 부분

  • 5계층 세션 계층(Session Layer)
    • 기능 : 실제 네트워크 연결이 이루어지는 층
      프로세스가 통신하기 위한 방법 정의
      TCP/IP 세션 생성 및 제거
    • 프로토콜 데이터 단위 : 메시지
  • 6계층 표현 계층(Presentation Layer)
    • 기능 : 응용프로그램 혹은 네트워크를 위해 데이터를 '표현'하는 계층
      (ex. 압축, 암호화, 복호화, 데이터 변환 등)
  • 7계층 응용 계층(Application Layer)
    • 기능 : 응용 서비스나 프로세스가 응용계층에서 동작(HTTP, FTP, SMTP)

📁 캡슐화 - 역캡슐화(데이터 전송 과정)

계층 간 데이터를 주고받는 과정에서 캡슐화와 역캡슐화 발생



캡슐화 : 헤더, 트레일러 같은 데이터를 추가해 나가는 과정
역캡슐화 : 차례대로 제거하며 데이터를 전달받는 과정

프로토콜 정리

물리 계층(Physical Layer) : 프로토콜x, 랜선, 허브, 리피터들의 디바이스들
데이터 링크 계층(Data Link Layer) : Ethernet, Token Ring, FDDI
네트워크 계층(Network Layer) : IP, ICMP, ARP, RARP
전송 계층(Transport Layer) : TCP, UDP
세션 계층(Session Layer) : NetBIOS, SAP, SDP, NWLink
표현 계층(Presentation Layer) : ASCII, MPEG, JPEG, MIDI
응용 계층(Application Layer) : HTTP, SMTP, FTP

profile
언어는 거들 뿐...

0개의 댓글