Protocol

  • 프로토콜컴퓨터나 네트워크 장비들 사이에서 데이터를 주고받을 때 지켜야 하는 약속(규칙)입니다.
  • 프로토콜의 3가지 요소
    1. 구문(Syntax): 데이터의 구조나 포맷을 의미
    2. 의미(Semantics): 전송되는 데이터의 각 부분이 무엇을 뜻하는지 를 알 수 있게 미리 정해 둔 규칙(데이터 자체 뿐만 아니라 오류 제어, 동기 제어, 흐름 제어를 포함)
    3. 순서(Timing): 어떤 데이터를 보낼 것인지와 얼마나 빠르게 데이 터를 보낼 것인지 정의
  • 프로토콜의 기능
    1. 주소 설정(Addressing): 서로 다른 시스템의 두 개체가 통신을 하는 경우 필요
    2. 순서 제어(Sequence Control): 프로토콜 데이터 단위를 전송할 때 보내는 순서를 명시하는 기능(연결 지향형(Connection-Oriented)에만 사용)
    3. 데이터 분할과 재조합(Fragmentation & Reassembly): 대용량 파일을 전송할 때 전송 효율이 높은 작은 단위로 나누어 전송한 뒤 전송 받은 시스템에서 이를 재조합해야 함
    4. 캡슐화(Encapsulation): 데이터에 제어 정보를 덧붙이는 것(헤더)
    5. 연결제어(Connection Control): 연결 설정, 데이터 전송, 연결 해제에 대한 통제 수행
    6. 흐름 제어(Flow Control): 송신 측에서 오는 데이터의 양이나 속도를 조절하는 기능, 송신자와 수신자의 속도 차이에 대한 대응
    7. 오류 제어(Error Control): 두 개체 사이에서 데이터를 교환할 때 데이터에 오류나 변경이 있을 경우를 발견하는 기능
    8. 동기화(Synchronization): 두 개체 데이터를 교환할 때 서로 동시에 똑같이 정의된 인자 값 을 공유하는 것 정보를 송수신 할 때에 호흡을 맞추는 기능
    9. 다중화(Multiplexing): 통신 선로 하나에서 여러 데이터나 시스템을 동시에 통신할 수 있는 기법
    10. 전송 서비스(Quality of Service, QoS): 우선 순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스

 

 


 

OSI 7 계층

  • OSI 7 계층네트워크에서 데이터를 주고받을 때의 과정을 7단계로 나눈 모델입니다.
  • OSI 7 계층물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 나뉩니다.

사용자 기반 계층 응용 계층(Application Layer) 사용자 인터페이스 제공. 요구에 따른 정보처리
표현 계층(Presentation Layer) 전달되는 정보를 데이터로 표현, 암호화, 압축
세션 계층(Session Layer) 통신 시작, 유지/관리, 종료
트랜스포트 계층 전송 계층(Transport Layer) 종단간(응용 프로세스 간) 신뢰성 있는 메시지 전송(에러제어, 흐름제어, 혼잡제어)
네트워크 기반 계층 네트워크 계층(Network Layer) Datagram을 발신지(노드)에서 목적지(노드)까지 전달(라우팅)
데이터링크 계층(DataLink Layer) 노드간(물리적으로 연결된) 신뢰성 있는 전송 제공(에러제어, 흐름제어, 혼잡제어)
물리 계층(Physical Layer) 물리매체로 비트를 신호로 변경하여 전송(부호화, 기계적, 전기적 특성 제공)

 

 


 

TCP(Transmission Control Protocol)

  • TCP데이터를 안정적으로 전송하는 연결 지향형 프로토콜이고, IP와 함께 통신을 하는 데 반드시 필요한 가장 기본적인 프로토콜입니다.
  • TCP의 특징 높은 신뢰성
    1. 가상 회선 연결 방식
    2. 연결의 설정과 해제
    3. 데이터 체크섬(Checksum)
    4. 시간 초과와 재전송
    5. 데이터 흐름 제어

 

UDP(User Datagram Protocol)

  • UDP는 빠르게 데이터를 전송하는 비연결 지향형 프로토콜입니다.
  • 상대방이 보낸 응답을 확인하지 않아 네트워크에 부하를 주지 않습니다.
    데이터 자체의 신뢰성이 없어 수신한 데이터의 무결성을 보장받지 못합니다.
  • UDP의 특징
    1. 비연결 지향형
    2. 네트워크 부하 감소
    3. 비신뢰성
    4. 전송된 데이터의 일부가 손실

 


 

TCP와 IP의 연계

  • TCP/IP는 인터넷에서 데이터를 전송하는 표준 프로토콜 세트입니다.
  • 쉽게 설명하면, IP데이터 패킷이 목적지까지 가도록 안내하는 네비게이션 역할 TCP데이터가 정확히 도착했는지 확인하고, 순서를 맞춰주는 역할입니다.
    - IP (Internet Protocol)
       → 목적지까지 데이터 패킷을 전달하는 역할 (주소 지정 & 라우팅).
       → 데이터가 어디서 어디로 가야 하는지 알려주는 "배달 주소 역할
    - TCP (Transmission Control Protocol)
       → IP가 전달하는 데이터의 전송 품질을 보장하는 역할 (순서 보장, 오류 검사, 재전송).
       → 데이터를 안정적으로 주고받기 위한 안전한 배달 서비스 역할
  • TCP/IP의 데이터 전송 흐름
    1. TCP가 데이터를 분할
    2. IP가 패킷에 주소를 부여
    3. 수신 측에서 재조립

 


 

3-Way Handshake

  • TCP 프로토콜은 데이터 전송 전에 안전하고 신뢰성 있는 연결을 위해 3단계 과정(3-Way Handshake)을 사용합니다.
  • TCP 3-Way Handshake 연결 동작 과정
    1. 클라이언트 → 서버 : SYN
    - 클라이언트가 서버에게 연결 요청을 보냄
    - SYN 패킷(Synchronize) 전송
    2. 서버 → 클라이언트 : SYN + ACK
    - 서버가 요청을 받고, 연결 요청을 응답
    - SYN (동기화) + ACK (확인 응답) 패킷 전송
    3. 클라이언트 → 서버 : ACK
    - 클라이언트가 서버에게 다시 잘받았다는 것을 응답
    - 연결 완료

4-Way Handshake

  • 연결을 종료할 때도 안전하게 연결을 종료하기 위해 사용하는 4단계 과정(4-Way Handshak)을 사용합니다.
  • TCP 4-Way Handshake 연결 동작 과정
    1. 클라이언트 → 서버 : FIN
    - 클라이언트가 연결 종료를 요청
    - FIN (Finish) 패킷 전송
    2. 서버 → 클라이언트 : ACK
    - 서버가 확인 응답
    - ACK (Acknowledgment) 패킷 전송
    3. 서버 → 클라이언트 : FIN
    - 서버도 데이터를 전부 전송하고 종료 요청
    - FIN 패킷 전송
    4. 클라이언트 → 서버 : ACK
    - 클라이언트가 마지막 응답을 보냄
    - 연결 종료

 

IPv4, IPv6

  • IPv4, IPv6인터넷 통신을 위한 프로토콜(규칙)의 버전이며, 각각 32bit, 128bit의 주소 공각을 사용합니다.
  • IPv4인터넷의 초기 버전으로, 현재도 많이 사용되고 있지만 주소 부족의 문제IPv6개발되었습니다.
  • IPv4와 IPv6의 설명

      IPv4 IPv6
    주소 길이 32비트 128비트
    표기법 점(.)으로 구분된 10진수
    EX) 192.168.0.1
    콜론(:)으로 구분된 16진수
    EX) 2001:0db8:85a3:0000:0000:8a2e:0370:7334
    주소 개수  약 43억 개 약 340언데시틸리언 (거의 무제한)
    문제점 주소 부족: 약 43억 개 주소로 제한, 이미 거의 소진됨
    보안: IPSec 보안 기능은 선택 사항 (기본 제공 X)
    NAT 필요: 여러 기기가 하나의 IP를 공유해야 함
    확장성 부족: 기기 수 증가에 따른 한계
    전환 복잡성: 기존 IPv4에서 IPv6로의 전환 필요
    호환성 문제: 일부 오래된 장비나 소프트웨어는 IPv6 미지원
    장점 간편한 설정: IPv4는 오래 사용되어 익숙하고 관리가 쉬움
    광범위한 호환성: 대부분의 네트워크 장비 및 시스템이 IPv4 지원

    거대한 주소 공간: 사실상 무제한의 IP 주소
    자동 구성: Stateless Address Autoconfiguration (SLAAC)
    보안: IPSec 기본 제공
    빠른 라우팅 및 멀티캐스트 지원

 


 

DNS란? (Domain Name System)

  • DNS도메인 이름을 IP 주소로 변환해주는 시스템입니다.
    사람이 기억하기 쉬운 도메인 이름(예: www.example.com)을 컴퓨터가 이해할 수 있는 IP 주소(192.0.2.1)로 변환합니다.
  • DNS의 동작 원리
    1. 사용자가 웹 브라우저에 도메인 이름 입력
    2. DNS 서버가 도메인 이름을 IP 주소로 변환
    3. 변환된 IP 주소를 이용해 웹 서버 접속
    4. 원하는 웹 페이지 전달
  • DNS의 계층 구조
    - 가장 상위 개체는 ‘.’ (Root)
    - 두 번째 개체는 국가와 조직체의 특성
    - 보통 맨 앞은 자신의 DNS 서버에서 지정해 놓은 www, ftp와 같은 특정 서버의 이름이 옴
    - FQDN(Fully Qualified Domain Name) : 완성된 주소(예: www.example.com) 
    항목 내용 항목 내용
    com 영리 기관 mil 군사 기관
    net 네트워크 기관 edu 교육 기관
    org 비영리 기관 int 국제 기관
    gov 정부 기관 kr(Korea) 국가 이름
    DNS의 계층 구조
  • DNS 서버의 이름 해석 순서
    DNS 서버의 이름 해석 순서
    www.wishfree.com 에 접속하기 위한 순서
    1 | 캐시에 해당 사이트 정보를 확인
    2 | 캐시에 IP주소가 없을 경우에 hosts를 확인
    3 | 없으면 설정된 DNS 서버인 로컬 DNS 서버에 질의
    4 | 로컬 DNS에 없으면 루트 DNS에 질의
    5 | com DNS 서버에 질의
    6 | com DNS에도 없다면, wishfree.com DNS 서버에 질의
    7 | www.wishfree.com에 대한 IP 주소를 얻음
    8 | 로컬 DNS 서버는 이를 클라이언트에 전달 

 


 

포트

  • 포트네트워크에서 특정 서비스를 구분하는 논리적인 출입구입니다.
    IP 주소가 "어느 컴퓨터"인지를 알려준다면, 포트 번호는 "어떤 프로그램(서비스)"인지를 구분합니다.
  • 포트의 기능
    - 하나의 IP 주소에서 여러 서비스를 구분
    - 서버는 포트를 열어 두고 요청을 기다림
    - 클라이언트는 목적지 IP + 포트로 요청
  • 대표적인 포트 예시

    서비스 포트 설명
    HTTP 80 웹 사이트 접속 (보안 없음)
    HTTPS 443 암호화된 웹 접속 (보안 HTTPS)
    FTP 21 파일 전송 프로토콜
    SSH 22 원격 접속 (보안 쉘)
    DNS 53 도메인 이름 서비스
    SMTP 25 이메일 송신

 

 

포트포워딩

  • 포트포워딩외부에서 내부 네트워크의 특정 기기나 서비스에 접근할 수 있도록 라우터에서 포트를 지정하여 연결하는 기술입니다.
  • 포트포워딩이 왜 필요한가?
    1. 내부 네트워크(사설 IP)는 외부 인터넷에서 직접 접근 불가능
    2. 포트 포워딩을 통해 외부 요청을 내부 장비로 연결
  • 포트포워딩의 동작 원리
    1. 외부 요청: 외부에서 공인 IP + 포트로 요청
    2. 라우터 확인: 포트 포워딩 규칙에 따라 내부 IP + 포트로 전달
    3. 내부 장비 응답: 요청받은 내부 장비가 응답

 

 


참고

https://security-student.tistory.com/22 

 

 

+ Recent posts