CS Repo/네트워크 - Top-down Approach + @

네트워크와 프로토콜

조금씩 차근차근 2025. 4. 10. 14:41

네트워크의 역사와 발전과정, 네트워크의 기본 구조를 살펴보도록 하자.

네트워크란?

네트워크의 역사

1960년대

  • 시분할 시스템(Time Sharing System)과 네트워크
    • 과거 1960년대에는, 한대의 대형 컴퓨터의 처리를 짧은 시간으로 나누어 여러 사람이 사용하도록 만들었다.
    • 따라서, TSS 단말에서 대형 컴퓨터에 전화를 걸어 접속한 뒤, 마치 이를 전용 컴퓨터처럼 취급하였다.
    • 이것이 네트워크의 시초이다.

1970년대

  • ARPANET
    • 데이터를 패킷이라 부르는 작은 단위로 잘라서 취급하는 패킷 교환 방식이 도입되었다.

네트워크의 데이터 전송 방식

네트워크의 데이터 전송 방식에는 크게 두가지가 있다.

회선 교환 방식(Circuit Exchange Method)

  • 일대일 전송로를 먼저 만들고, 교환을 마칠때까지 전송로를 계속 사용하는 방식을 의미한다.
  • 위에서 설명한 최초의 TSS 연결 방식을 떠올리면 좋다.
  • 주로 과거의 전화선 연결 방식이 이를 따랐다.
  • 장점
    • 회선을 점유하기 때문에, 안정적인 통신 품질 유지가 가능하다.
  • 단점
    • 데이터가 흐르지 않을 때에도 회선이 점유되기때문에, 비용 효율이 나쁘다.

패킷 교환 방식(Packet Exchange Method)

  • 패킷 교환 네트워크가 헤더 정보를 보고 수신 컴퓨터로 패킷을 전달한다.
  • 위에서 설명한 ARPANET 방식을 떠올리면 좋다.
  • 장점
    • 회선을 점유하지 않고, 데이터를 보낼때만 사용하기 때문에, 비용 효율이 높다.
    • 회선의 Utilization이 올라간다.
  • 단점
    • 구현이 까다롭다.
    • 외부 환경에 의해, 패킷이 손실될 우려가 있다.

잠깐, 패킷이란?

  • 영어로 '소포' 라는 의미
  • 디지털 데이터를 작게 분할 후 헤더를 붙여 패킷으로 만들 수 있다.
  • 헤더
    • 수신 컴퓨터 정보
    • 데이터 중 몇번째에 해당하는 패킷인지에 관한 정보 등

패킷을 다루는 방법에 대한 내용을 지금부터 알아보자.

통신을 위한 규칙, 프로토콜

패킷을 처리하기 위한 규칙

  • 모두의 환경은 각각 다르기 때문에, 각 환경에 맞게 패킷을 다룰 수 있는 방법이 필요하다.
  • 해당 방법은 모두가 같이 사용해야 한다.
  • 따라서 프로토콜을 정의함으로써, 서로 다른 장치 간의 네트워크 통신이 가능하게 한다.

프로토콜의 역할

  • 물리적 사양 명시
    • LAN 케이블 소재나 커넥터 형태, 그 핀 배열에 이르기까지 네트워크에서 눈에 보이는 것들은 모두 프로토콜에 정의되어 있다.
    • 실제로, NIC(Network Interface Card)는 프로토콜에 정의된 대로 타 매체에 패킷을 보낸다.
  • 송신 상대 특정 방식 정의
    • 패킷의 송신 상대를 특정할 수 있는 방식을 정의해둔다.
    • 송신자와 수신자를 구별할 수 있는 "주소 구별법"을 정의해둔다.
  • 패킷 구조 정의
    • 헤더의 어디에서 어디까지가 어떤 정보를 포함하는지
    • 패킷이 어떤 순서로 교환되는지
    • 네트워크 노드는 해당 프로토콜을 참조하여 헤더를 해석하고, 송신 상대를 구별한다.
  • 신뢰성 확립
    • 에러를 알리는 방식을 정의해둔다.
    • 재전송을 위한 방식도 정의해둔다.
    • 네트워크의 혼잡/흐름을 제어하기 위한 방식 또한 정의해두기도 한다.
      • 네트워크 자원이 가득 차서, 예상하지 못한 오버플로우가 일어나지 않도록
    • 한정된 네트워크 대역을 모두 함께 잘 공유할 수 있도록 규칙을 설정해둔다.
  • 보안 확보
    • 상대방이 올바른 통신 상대인지 검증하는 로직 명시
    • 중간의 사용자가 패킷을 가로채지 못하도록 방지하기 위한 암호화 로직 명시
  • 프로토콜의 정의 방식
    • 프로토콜은 계층 별로 정의되어 있다.
      • 같은 계층끼리 통신하기 위해서
      • 현재 계층에 최적화된 프로토콜을 정의하기 위해서
      • 서로 다른 계층끼리 통신하는 방법은 하단 "계층 간 동작 방식" 내용 참고

계층 구조 모델

프로토콜은 계층 별로 정의되어 있다.

또한, 각 계층은 물리적 위치로 구분하는게 아닌, 역할로 구분한다.

각 프로토콜을 선택할 때, 어느 프로토콜 간에 비교를 해야 하는지 알기 위해서,
프로토콜을 계층 별로 분류한 모델을 알아보도록 하자.

TCP/IP 모델

  • 실용성을 중시한 구조이다.
  • 현재 대부분의 프로토콜은 TCP/IP 참조 모델에 대응하는 형태로 만들어져 있다.

TCP/IP로 분류한 프로토콜의 종류

OSI 참조 모델

  • 표준화를 위해 만들어진 네트워크 계층 구조 모델이다.
  • 지나치게 세세하기 때문에, 실제로 해당 모델에 대응하고 있는 프로토콜은 존재하지 않는다.
  • 하지만, 통신 기능을 체계적으로 논의할 때는 매우 유용하다.
    • ex) 로드밸런서를 어느걸 쓸까?
      • L3 - 네트워크 계층
      • L4 - 전송 계층
      • L7 - 응용 계층
  • “물데네트세프응”으로 암기해보자.

일반적으로 책에서 다루는 모델

  • 일반적으로 OSI 7 레이어에서, 응용 계층, 프레젠테이션 계층, 세션 계층을 합쳐 "응용 계층"으로 본다.
  • 트러블 슈팅 시에는 일반적으로 물리 계층과 데이터링크 계층을 나누어서 생각한다.

PDU

  • PDU란?
    • Protocol Data Unit
    • 계층 별로 다루는 데이터 단위를 의미한다.
    • PDU는 각 계층에서 요구하는 헤더와 페이로드로 구성되어 있다.
  • PDU의 종류
    • 응용 계층 - 메시지
    • 전송 계층 - 세그먼트(TCP)/데이터그램(UDP)
    • 네트워크 계층 - 패킷
    • 데이터링크 계층 - 프레임
    • 물리 계층 - 비트

cf. "패킷"의 모호함

  • 패킷은 크게 두 종류가 있다.
  • 네트워크 계층에서의 "IP 패킷"
  • 네트워크를 통해 흐르는 데이터 "패킷"
    • PDU 자체를 패킷이라고 부르기도 한다.
  • 패킷이란 단어를 봤을 때, 정확히 어떤 패킷인지 알 수 있도록 명확히 하자.

프로토콜을 결정하는 표준화 단체

프로토콜은 두개의 표준화 단체에서 함께 관리하고 있다.

  • IEEE
    • I Triple E
    • 비교적 하드웨어와 관련한 네트워크 기술의 표준화를 담당한다.
    • IEEE802.11 과 같은 IEEE문서를 통한 표준화를 담당한다.
  • IETF
    • 비교적 소프트웨어와 관련한 네트워크 기술의 표준화를 담당한다.
    • RFC 문서를 통한 표준화를 담당한다.

계층 간 동작 방식

지금까지는 같은 계층 내에서의 통신 방식을 이야기해보았다면, 이제는 인접한 상하위 계층 간의 통신 방식을 알아보자.

데이터의 전송

각 계층간에는, 상위 계층의 PDU를 페이로드로 보고, 자신의 헤더를 추가하여 자신의 계층의 PDU로 변환할 수 있다.

  • encapsulation
    • 각 계층의 페이로드에 헤더를 붙여, 한 단계 아래 계층으로 전달하는 것을 의미한다.
  • decapsulation
    • 각 계층의 PDU로부터 헤더를 제거하고, 페이로드만을 한단계 위 계층으로 전달하는 것을 의미한다.

상위 계층을 지원하기 위한 방식

프로토콜은 또한, 상위 계층을 지원할 때 두가지 형태로 지원이 가능하다.

  • 커넥션 타입
    • 안정적이다.
    • 데이터를 보낼 수 있는 환경인지 확인
    • 확실하게 정해진 순서를 보장
    • 전송에는 다소 시간이 걸림
    • 예시
      • TCP
  • 커넥션리스 타입
    • 데이터를 보내면서 커넥션을 확립 후, 마음대로 종료
    • 상대의 정상 수신을 보장하지 않음
    • 빠르다.
    • 예시
      • UDP
      • 이더넷
      • IEEE802.11

계층 별 대표 프로토콜

마지막으로, 각 계층 별 대표 프로토콜을 알아보자.

물리 계층 + 데이터링크 계층

  • 유선 환경
    • 이더넷 (IEEE802.3)
  • 무선 환경
    • IEEE802.11

네트워크 계층

  • IP

트랜스포트 계층

  • TCP
  • UDP

애플리케이션 계층

  • HTTP
  • HTTPS
  • DNS
  • FTP
  • 이메일 관련
    • IMAP
    • POP3
    • SMTP

본 내용은 그림으로 공부하는 TCP/IP 구조 도서를 참고하여 작성되었습니다.