OSI 7 계층
국제표준화기구인 ISO(International Organization for Standardization)에서 제정한 네트워크의 통신 과정을 7개의 계층으로 나눈 이론적 구조, 실제 구현된 시스템이 아니라 일종의 개념적 모델
1. 물리 계층
2. 데이터 링크 계층
3. 네트워크 계층
4. 전송 계층
5. 세션 계층
6. 표현 계층
7. 응용 계층
전송 계층의 상하 관계의 특성
상위 계층 (5계층, L5)은 하위 계층 (4계층, L4)이 하는 일에 관여하지 않음
전송 계층의 상하 관계
전송 계층(4계층)은 상위 계층(5계층)과 하위 계층(3계층)과 상호작용한다.
메시지: 상위 계층(5계층)에서 생성된 전체 데이터
세그먼트: 전송 계층(4계층)에서 메시지를 적절한 크기로 나누어 세그먼트라고 부름. 예시로 메시지가 2개의 세그먼트로 쪼개질 수 있음
캡슐화 (Encapsulation)
캡슐화: 전송 계층에서 상위 계층의 데이터를 세그먼트로 나누고, 각 세그먼트에 헤더 정보를 추가하는 과정 헤더 정보에는 하위 계층에서 사용될 수 있도록 필요한 정보를 가지고 있음
예시:
"abcdef" 라는 메시지가 있다.
이 메시지는 너무 크기 때문에 전송 계층에서는 abcd와 ef라는 두 개의 세그먼트로 나눔
각 세그먼트에는 송신자와 수신자 정보, 흐름 제어 정보 등이 포함된 헤더가 추가됨
페이로드 (Payload)
페이로드: 세그먼트에서 헤더를 제외한 실제 데이터 부분. 상위 계층의 데이터가 여기에 해당됨, 위 예시에서는 "abcd", "ef" 각각이 페이로드이다.
흐름 제어 및 오류 검출
흐름 제어: 전송 계층의 헤더에는 수신자가 데이터를 제대로 처리할 수 있도록 흐름을 조절하는 정보가 포함됨.
오류 검출: 전송 계층은 게이턱가 전송되는 동안 오류가 발생했는지를 확인하는 기능이 있음. 오류가 발생하면 전송 계층은 데이터 재전송을 요청할 수 있음
네트워크 계층
데이터가 송신지에서 수신지까지 전달될 때 최적의 경로를 선택하고 데이터 패킷을 라우팅하는 역할을 함
전송 계층(4계층)에서 받은 세그먼트를 패킷이라는 단위로 캡슐화
패킷의 구조
헤더: 출발지 주소, 목적지 주소, 프로토콜 정보, 전송 경로에 대한 정보
페이로드: 패킷의 페이로드는 전송 계층에서 전달딘 세그먼트
경로 선택과 오류 처리
최적의 경로 선택: 네트워크 계층은 여러 경로 중에서 최적의 경로를 선택하기 위해 각 노드 간의 전송 속도와 비용을 평가
노드 고장 시 대체 경로: 기존에 구해진 경로 상의 노드가 고장이 발생하면, 네트워크 계층은 대체 경로를 찾아서 데이터를 전송
데이터 링크 계층(Data Link Layer)
단말 사이의 신뢰성 있는 전송을 보장하는 계층, 물리적 매체를 통해 데이터를 전송할 때 발생할 수 있는 오류를 감지하고 수정하는 기능을 가지고 있음
포인트 투 포인트(Point-to-Point) 간 신뢰성을 보장하는 계층, 1계층인 물리 계층에서 발생할 수 있는 오류를 찾아내고 이를 수정, 오류를 검출하는 기법으로는 패리티 검사 등의 기법이 사용 된다.
데이터 캡슐화
프레임(Frame): 데이터 링크 계층에서 전송되는 데이터의 단위, 프레임은 3계층의 패킷을 포함한다.
프레임 구조:
헤더: 프레임의 시작 부분, 송신자 및 수신자 주소, 프레임 유형 등의 정보를 포함
페이로드: 3계층에서 전달된 패킷 데이터
테일: 프레임의 끝 부분으로, 오류 검출을 위한 추가 정보를 포함
데이터 링크 계층의 예시
이더넷(Ethernet): 많이 사용되는 데이터 링크 계층 프로토콜, LAN에서 데이터 전송을 담당, 이더넷 프레임은 MAC 주소를 사용하여 송신자와 수신자를 식별
TCP/IP 프로토콜
TCP/IP는 실제 구현이 되어 실질적인 표준처럼 사용되는 네트워크 모델
IP 프로토콜
IP: 네트워크 계층에 해당하는 통신 프로토콜, IP는 데이터 패킷의 라우팅 담당하며 각 패킷이 최종 목적지까지 도달할 수 있도록 경로를 결정함
라우팅(Routing)
라우팅은 데이터 패킷이 출발지에서 목적지까지 가는 경로를 결정하는 과정. 이 과정에서 여러 노드를 거치게 된다.
라우팅 테이블: 각 라우터는 라우팅 테이블을 유지하여, 어떤 패킷을 어떤 경로로 보낼지 결정
목적지 주소: 패킷이 가야 할 목적지의 IP 주소.
다음 홉 주소 (Next Hop): 패킷을 전달할 다음 라우터의 IP 주소.
전송 비용(Cost): 특정 경로를 통해 패킷을 전송하는 데 드는 비용.
홉 수 (Hop Count): 패킷이 목적지에 도달하기 위해 거쳐야 하는 라우터의 수.
예시
목적지 IP
예: 192.168.1.3 (라우터 C로 가는 주소)
게이트웨이
패킷을 보낼 다음 주소
예: 192.168.1.3이면, 패킷을 라우터 C로 직접 보낸다는 의미
인터페이스
패킷을 보낼 네트워크 인터페이스
예: eth0는 이더넷 인터페이스
홉 수
홉 수가 1이면, 직접 연결되어 있다는 뜻
네트워크 구성
라우터 A: 192.168.1.1
라우터 B: 192.168.1.2
라우터 C: 192.168.1.3
사용자가 라우터 A에 연결된 컴퓨터에서 라우터 C로 데이터를 보낼 때 패킷 전송 과정
1. 사용자가 192.168.1.3으로 데이터를 전송
2. 라우터 A는 라우팅 테이블을 확인, 192.168.1.3이 테이블에 있으므로, 패킷을 192.168.1.3으로 직접 전송
TCP 프로토콜
TCP는 연결 지향적(Connection-oriented) 인 프로토콜
송신자와 수신자가 통신을 시작하면 둘 사이에 연결이 맺이저기 통신이 끝날 때까지 연결이 유지됨
TCP는 데이터의 전송이 신뢰성 있게 이루어지도록 보장. 데이터가 손실되거나 순서가 바뀌지 않고, 수신자가 데이터를 정확하게 수신했음을 확인 할 수 있음
TCP의 시작 과정: 3-way Handshaking
1. 송신자: 연결을 맺자고 요청하는 SYN(Synchronize, 동기화) 패킷을 보냄
2. 수신자: 송신자의 요청을 승인하는 SYN+ACK(Acknowledge, 수락) 패킷을 보냄
3. 송신자: 수신자의 승인 패킷을 확인했다는 의미로 ACK 패킷을 보냄
이러한 3단계를 거치면 연결 생성(Established) 상태가 됨
TCP의 데이터 전송 과정
TCP는 신뢰성 있는 데이터 전송을 위해 데이터를 작은 패킷으로 나누어 전송한다. 해당 과정에서 송신자와 수신자 사이의 메시지가 전달 되는 방식은 아래와 같다.
1. 데이터 패킷 전송: 송신자는 데이터를 여러 개의 TCP 세그먼트로 나누고, 각 세그먼트에 시퀀스 번호를 부여하여 전송, 각 세그먼트는 TCP 헤더를 포함하고 있으며, 이 헤더에는 송신자의 시퀀스 번호, 수신자의 ACK 번호 플래그 정보 등이 포함
2. ACK 패킷 수신: 수신자는 송신자의 세그먼트를 수신하고 송신자에게 ACK 패킷을 전송. ACK 패킷에는 다음에 수신할 세그먼트의 시퀀스 번호가 포함되어 있음. 이 번호는 수신자가 성공적으로 수신한 마지막 세그먼트의 다음 번호이다.
흐름 제어 (Flow Control)
흐름 제어는 송신자가 수신자의 처리 능력을 초과하여 데이터를 전송하지 않도록 한다. 이 과정은 수신자의 ACK 패킷을 확인하여 데이터 전송을 조절한다.
ACK 패킷의 중요성
송신자는 수신자로부터 ACK 패킷을 일정 시간 내에 받지 못할 경우 해당 세그먼트가 손실되었거나 수신자가 과부하 상태일 수 있다고 판단, 이 경우 송신자는 해당 세그먼트를 재전송 한다.
슬라이딩 윈도우(Sliding Window) 기법
흐름 제어를 구현하는 기법으로, 송신자가 동시에 전송할 수 있는 세그먼트의 수를 조절한다.
윈도우 크기: 슬라이딩 윈도우의 크기는 수신자가 처리할 수 있는 데이터의 양을 나타낸다. 수신자는 이 정보를 송신자에게 알려준다.
작동 방식
1. 송신자는 현재 윈도우 크기 내에서 여러 개의 세그먼트를 전송할 수 있다.
2. 송신자가 세그먼트를 전송하면 윈도우가 슬라이드하여 다음 세그먼트를 보낼 준비를 한다.
3. 수신자가 ACK 패킷을 보내면 송신자는 ACK 번호에 해당하는 세그먼트를 전송할 수 있다.
작동 방식 예시
송신자: 데이터 세그먼트를 1, 2, 3, 4로 나누어 전송하려고한다.
수신자: 세그먼트 1, 2를 수신하면 다음 세그먼트인 3을 요청하는 ACK 패킷을 보낸다.
송신자: ACK 패킷을 통해 세그먼트 1, 2가 수신되었음을 확인하고 세그먼트 3을 전송한다. 만약 ACK 패킷을 일정시간 내에 받지 못하면 송신자는 세그먼트 1을 재전송한다.
TCP의 종료 과정 (4-way Handshaking)
4-way 핸드셰이킹(4-way Handshaking)이라고 불리며 네 가지 단계가 있다.
1. 송신자가 FIN 패킷을 전송하여 연결 종료 요청.
2. 송신자의 FIN 패킷을 수신하면 수신자는 ACK 패킷을 송신자에게 전송.
3. 수신자가 자신의 FIN 패킷을 송신자에게 전송.
4. 송신자가 ACK 패킷으로 수신자의 FIN 패킷을 수락
'정보보안' 카테고리의 다른 글
암호화, 대칭 암호화 (0) | 2025.05.26 |
---|---|
쓰레드를 이용한 소켓 통신 (0) | 2025.05.25 |
소켓 통신 (0) | 2025.05.25 |
스니핑(Sniffing) (0) | 2025.04.20 |
HTTP 통신 프로토콜 (1) | 2025.04.11 |