시작하기 전에
SKT 해킹 사건을 공부하다 보니 커널, 패킷, SSL이라는 생소한 개념이 등장했습니다.
'패킷, SSL'부터 브랜치를 뻗어나가 봅시다.
둘 다 네트워크 관련 내용이니 여기부터 출발해봅시다.
네트워크
네트워크에는 다양한 기기 간 통신을 위한 구조가 있다.
네트워크 통신 과정을 개념적으로 나눈 OSI 7계층과 실제 인터넷 통신에 사용되는 TCP/IP 4계층부터 출발해보자.
OSI(Open Systems Interconnection) 7계층
컴퓨터 네트워크 통신 과정 7단계다.
- 데이터 송신 시
- 높은 계층에서 낮은 계층으로 전달
- 각 계층에서 필요한 정보 담은 헤더나 트레일러 추가되는 데이터 캡슐화 진행
- 데이터 수신 시
- 낮은 계층에서 높은 계층으로 전달
- 헤더와 트레일러를 분석하며 제거하는 데이터 역캡슐화 진행
헤더는 데이터 앞, 트레일러는 뒤에 붙음
그림으로 표현하면 아래와 같다.
'프로토콜'이라는 단어가 등장했는데, 이는 데이터를 송수신하기 위해 정한 규칙이다.
각 계층 역할:
- 7계층(응용 계층): 뒤에서는 HTTP, FTP 등의 프로토콜을 돌리면서 사용자는 프로그램 UI만 사용해도 동작하도록 한다.
- 6계층(표현 계층): 데이터를 표준화된 방식으로 변경한다.
- 5계층(세션 계층): 서로 통신하는 프로그램 사이에서 세션을 열고, 유지하고, 닫는 역할을 한다.
세션이 왜 필요한가? 우리가 네트워크에서 주고받는 데이터가 한 줄짜리 단순한 작업이 아니고 로그인 -> 대화 -> 로그아웃 같은 연결 상태의 흐름으로 이루어져 있기 때문이다.
이때 연결을 언제 시작할지, 중간에 멈추거나 재시작할 때 어떻게 이어갈지, 언제 종료할지를 담당하는 관리자 역할을 한다. - 4계층(전송 계층): 신뢰성 있는 데이터를 전달하기 위해 TCP, UDP 같은 전송 방식과 포트(port) 번호 등을 결정한다.
- 3계층(네트워크 계층): 데이터를 송신부에서 수신부까지 전달할 최적의 경로를 선택하는 라우팅(routing)을 담당한다. 그 최적의 경로를 라우트(route)라고 한다.
네트워크 계층의 장비로 라우터가 있다. - 2계층(데이터 링크 계층): 데이터의 오류 검출 및 복구를 수행한다.
해당 계층의 장비로는 브리지(bridge), 스위치(switch), 이더넷(ethernet)이 있다. - 1계층(물리 계층): 송신부에서는 데이터를 비트(bit) 단위의 0과 1로 전환해 전송하고 수신부에서는 전기 신호를 데이터로 전환한다.
해당 계층의 장비로는 리피터(repeater), 허브(hub) 등이 있다.
TCP, UDP, HTTP 등 모르는 내용들이 잔뜩 나왔다. 다 알아볼 건데 우선 TCP/IP 4계층부터 정리하고 가자.
TCP/IP 4계층
TCP/IP 기반으로 OSI 7계층을 단순화한 것이다.
TCP/IP: 인터넷에서 데이터를 주고받기 위한 네트워크 프로토콜
- TCP(Transmission Control Protocol, 전송 제어 프로토콜): 패킷의 전달 여부와 전송 순서를 보장하는 통신 방식
- IP(Internet Protocol, 인터넷 프로토콜): 패킷을 빠르게 보내기 위한 통신 방식
- TCP/IP 기반 프로토콜의 대표적인 예시가 HTTP
OSI 7계층과 TCP/IP 4계층을 비교하면 아래와 같다.
각 계층 역할:
- 4계층(응용 계층): 사용자와 소프트웨어를 연결해준다.
HTTP, HTTPS, DNS 등의 프로토콜이 작동한다. - 3계층(전송 계층): 데이터의 신뢰성을 보장하며, 포트 번호로 데이터를 적절한 응용 프로그램에 전달하는 역할을 한다.
TCP, UDP 등의 프로토콜이 전송 계층에 속한다.
전송 계층의 데이터 단위를 세그먼트(segment)라고 한다. - 2계층(인터넷 계층): 데이터를 최종 목적지까지 도달할 수 있게 한다.
IP가 대표적인 프로토콜이다.
전송 계층으로부터 받은 데이터에 헤더를 붙여 캡슐화하는데, 이를 패킷(packet) 또는 데이터그램(datagram)이라고 한다. - 1계층(네트워크 인터페이스 계층): 데이터를 전기 신호로 변환하고 MAC 주소를 사용해 기기에 데이터를 전달한다.
이더넷, Wi-Fi 등이 대표적인 프로토콜이다.
추가로 등장한 용어들을 정리하면,
- 패킷(packet): 네트워크에서 주고받는 데이터를 작게 분할한 단위
송신 정보, 수신 정보 등이 포함되어 있어 데이터를 목적지에 제대로 전달할 수 있음 - MAC 주소(Media Access Control Address): 48비트로 이루어진 하드웨어 고유의 주소
- IP 주소
- IP에서 컴퓨터 또는 네트워크 장치를 식별하기 위한 값
- xxx.xxx.xxx.xxx 형태로 이루어져 있고 8자리 2진수 4개를 10진수로 표현한 값(2^8 = 256이니 각각 0~255까지 가능)
- 앞에 3개가 네트워크부, 뒤에 1개가 호스트부
- 네트워크부: 해당 주소가 어떤 네트워크에 속해 있는지 구분
- 호스트부: 해당 네트워크에서 어떠한 기기인지 구분
어쩌다보니 패킷은 정리했다.
다음 글에서 TCP와 UDP를 살펴보고, 그 뒤에 HTTP, HTTPS가 무엇인지 모두 알아보자.
'📖 Computer Science > 네트워크' 카테고리의 다른 글
[CS Study] 네트워크 (4) - REST (0) | 2025.05.08 |
---|---|
[CS Study] 네트워크 (3) - HTTP (0) | 2025.05.07 |
[CS Study] 네트워크 (2) - TCP와 UDP (0) | 2025.05.07 |