공부 하면서 알아본건데 혹시 틀린 정보가 있다면
정정 댓글 달아주시면 감사하겠습니다!
OSI 7계층이란?
OSI 7계층이란 'Open Systems Interconnection'의 약자로 ISO(국제표준화기구)에서 통신 과정을 계층별로 나누어 설명한것으로, 7개의 계층으로 나누어놨다.
1계층 - 물리계층(Physical Layer)
- 역할: 네트워크의 물리적인 연결과 데이터 전송을 담당.
- 내용: 데이터를 0과 1의 전기 신호, 빛, 또는 무선 신호로 변환하여 물리적인 매체를 통해 전달합니다.
- 장비: 허브, 리피터, 케이블(UTP, 광섬유 등).
- 예시: 이더넷 케이블로 데이터를 전기 신호로 변환하여 전송.
허브
허브는 통신 목적지를 여러곳으로 분산시켜줄 수 있는 역할을 수행한다.
위 사진처럼 예를들어 100mbps 속도를 가진 통신을
최대 5개의 회선 사용이 가능하다고 했을 때
20mbps씩 나누어서 5개의 목적지로 통신을 한다.
단, 통신 속도가 사진 처럼 반드시 딱 맞아떨어지는 것은 아니다.
충돌, 재전송, 데이터 패턴에 따라 대역폭이 불균형하게 나뉠 수 있다.
허브는 통신요청이 들어오면 허브와 연결돼있는 모든 PC에 *브로드캐스트 통신을 한다.
그말인 즉, PC1에서 스트리밍, 다운로드등으로 인한 통신요청을 허브에 보냈다고 하면
허브는 어디로부터 요청이 들어온것인지 알 수 없다.
따라서 허브는 통신 요청에 대한 답변을 연결돼있는 모든 PC로 보낸다.
만약 이 과정에서 한 대의 PC만 통신요청을 했다면 주어진 통신속도를 온전히 할당받을 수 있지만
다중의 PC가 통신요청을 했을 경우 통신과정에서 허브 내부의 정해진 통신 매체 하나로만 통신을 한다.
따라서 허브 내부의 정해진 통신로를 통해 통신을 해야하기 때문에 다중 통신을 할 경우 신호가 같은
경로를 통하기 떄문에 충돌이 발생한다. 이때 *CSMA/CD방식을 통해 충돌을 감지하고 해결한다.
이러한 특징 때문에 허브는 '단방향 통신(Half-Duflex)'만 가능하다.
(송신할 땐 송신만, 수신할 땐 수신만 가능)
다만 충돌 감지 및 해결 자체가 통신 시간을 지연시키기 때문에
다중통신의 경우 통신 속도가 감소할 수 밖에 없다.
*브로드캐스트(Broadcast) : 자신의 호스트가 속해 있는 네트워크 전체를 대상으로 패킷을 전송하는 일대다 통신방식이다
*CSMA/CD :
-
A, B 컴퓨터는 서버에 정보를 전송하기 위해 회선이 사용 중이지 않는지 확인. (반송파 감지 - Carrier Sense, 또는 청취)
-
양 컴퓨터는 회선이 사용 중이지 않다는 것을 확인하고 두 컴퓨터가 서버로 정보를 요청한다 (다중 접근 - Multi Access)
-
두 컴퓨터의 통신이 충돌(Collision), 신호가 퍼져나갈 때 비정상적인 증폭으로 충돌을 확인한다. (충돌 감지 - Collision Detection)
-
충돌을 확인한 전송장비가 충돌을 알린다. (충돌 신호 - Jam Signal)
-
A, B 컴퓨터는 충돌을 확인 후 백오프(Backoff) 알고리즘을 수행하고, 임의의 시간 동안 전송을 중단한다.
-
임의의 시간이 지난 후, 다시 청취모드로 돌아가 이 과정을 충돌이 일어나지 않을 때까지 반복한다.
CSMA/CD 설명에 대한 출처 : 나무위키
리피터
데이터 신호가 전송될 때 거리가 멀어지면 신호가 약해지는 감쇠효과가 일어나는데
신호를 재생 및 증폭시켜줌으로써 먼 거리도 효과적으로 데이터가 전송될 수 있게 도와주는 기기이다.
단순 물리적 작용만 한다.
단점으로는 노이즈까지 증폭시킬 수 있다고 한다...
2계층 - 데이터링크계층(DataLink Layer)
- 역할: 물리 계층에서 받은 데이터를 프레임(Frame)으로 구성하고, 에러 검출 및 수정 기능을 제공.
- 내용:
- 데이터의 정확한 전달을 위해 MAC 주소를 사용.
- 흐름 제어 및 에러 검출을 통해 신뢰성을 보장.
- 장비: 스위치, 브리지.
- 프로토콜: 이더넷(802.3), PPP, HDLC.
- 예시: 특정 컴퓨터의 MAC 주소를 사용해 데이터 패킷을 전달.
스위치
이해하기 쉽게 그려놓은 그림이다. 다만 100% 맞는지는 잘 모르겠다.
허브 설명에서 언급한 ' 정해진 통신 매체 하나'가 '하나의 충돌 도메인'이랑 같은 말인데
여기서 충돌 도메인은 그냥 '길'정도로 이해하면 좋을 것 같다.
그러니까 허브는 모여드는 길이 있는거고 스위치는 각 pc마다 독립된 길이 존재한다.
독립된 길이 존재하기에 충돌이 발생할 일이 없다.
스위치는 각 PC의 MAC주소(하드웨어마다 세겨진 고유 주소)와 연결된 포트를 기억해서
목적지를 알아낸다는게 허브와의 차이점이다.
허브와 달리 '전이중통신(Full-Duplex)'이 가능하다.
(송, 수신을 동시에 할 수 있다.)
브리지
같은 대역의 네트워크이지만 물리적으로 나뉘어져 있을 경우 중계하는 역할을 하는 장비이다.
- 특징
- 충돌 도메인 분리
- MAC 주소 기반 데이터 필터링
- 네트워크 간 트래픽 효율화
1. 먼저 연결된 PC의 MAC 주소를 학습하여 MAC 주소 테이블에 기억해둔다.
2. 학습된 MAC 주소를 기반으로 특정 목적지로만 전달되는 데이터가 있다면
해당 포트로만 통신을 한다. (목적지가 없다면 모든 목적지로 브로드캐스트 한다. ex) DHCP )
따라서 효율적인 트래픽 관리가 가능하다.
브리지도 스위치와 마찬자기로 충돌 도메인이 분리돼있기 때문에
전이중통신(Full-Duplex)이 스위치와 마찬가지로 가능하다.
3계층 - 네트워크계층(Network Layer)
- 역할 : 데이터 전송 경로를 결정하고, 패킷(Packet)을 목적지까지 라우팅
- 내용 :
- IP 주소를 사용하여 데이터의 논리적인 경로를 설정
- 패킷을 분할(Fragmentation)하거나 재조합
- 라우팅 기능을 제공
- 장비 : 라우터
- 프로토콜 : IPv4, IPv6, ICMP, ARP
- 예시: 데이터를 목적지 IP 주소로 라우팅하여 전달
라우터
1) 서로 다른 네트워크 연결
라우터는 서로 다른 종류의 네트워크(ex LAN <-> WAN)나, 네트워크 대역을 IP 주소를 기반으로 연결해주는 장비이다.
출발지와 목적지 IP를 기록해둔 라우팅 테이블이 존재하며
이 라우팅 테이블을 통해 통신 한다.
2) 데이터 경로 결정 (라우팅)
- 라우터는 데이터 패킷의 목적지 IP 주소를 기반으로 가장 효율적인 경로를 선택한다.
- 라우팅 테이블을 사용해 패킷이 전달될 최적의 경로를 결정한다.
- 정적 라우팅 : 라우팅 테이블을 통해 직접 송, 수신지를 설정해줌
- 동적 라우팅 : 경로를 라우팅 프로토콜(OSPF, BGP 등)을 통해 자동으로 설정
3) 브로드캐스트 도메인 분리
- 라우터는 네트워크 간 브로드캐스트 트래픽을 차단한다.
- 브로드캐스트 메시지는 같은 네트워크에서만 전달되며, 라우터를 넘어서지 않는다.
- 이는 네트워크 성능을 유지하고 보안을 강화한다.
4) IP 주소 기반 데이터 전달
- 라우터는 데이터를 전달하기 위해 IP 주소를 확인한다.
- 패킷의 목적지 IP 주소를 분석하고, 데이터가 어느 네트워크로 전달되어야 하는지 결정.
5) 다중 네트워크 연결
- 라우터는 여러 네트워크 인터페이스를 통해 다수의 네트워크를 동시에 연결할 수 있다.
- 예: 회사의 내부 네트워크(LAN)와 인터넷(WAN)을 연결.
6) 네트워크 주소 변환 (NAT)
- 라우터는 NAT(Network Address Translation) 기능을 통해 내부 사설 IP를 공인 IP로 변환하여 인터넷 통신이 가능하게 한다.
- 예: 가정용 공유기.
7) 보안 기능
- 라우터는 ACL(Access Control List) 등을 통해 트래픽을 필터링하고, 네트워크 보안을 강화할 수 있다.
- 방화벽 기능을 통해 특정 트래픽을 차단하거나 허용할 수 있다.
8) QoS (Quality of Service) 지원
- 라우터는 트래픽 우선순위를 설정하여, 중요한 데이터(예: VoIP, 스트리밍) 전송을 보장할 수 있다.
4계층 - 전송계층(Transport Layer)
- 역할 : 데이터 전송의 신뢰성을 보장하고, 데이터 분할 및 순서 제어를 담당
- 내용 :
- 포트 번호를 사용해 애플리케이션 간의 데이터 전송을 구분
- 데이터 전송 방식 :
- TCP : 연결 지향, 신뢰성 보장
- UDP : 비연결 지향, 빠른 전송
- 프로토콜 : TCP, UDP.
- 예시 : 웹 브라우저(포트 80/443)와 서버 간의 안정적인 데이터 전송
5계층 - 세션계층(Session Layer)
- 역할 : 데이터 통신 세션을 설정, 유지, 종료
- 내용 :
- 송수신 간의 대화 제어를 관리
- 데이터를 중단 없이 주고받기 위한 세션 복구 기능 제공
- 프로토콜 : NetBIOS, PPTP
- 예시 : 두 장치 간의 파일 전송 세션 시작 및 종료 관리
6계층 - 표현계층(Pressentation Layer)
- 역할 : 데이터의 변환, 암호화, 압축
- 내용 :
- 송신 측 데이터를 수신 측이 이해할 수 있도록 변환
- 데이터 압축 및 암호화를 수행
- 데이터 형식(예: JPEG, PNG, MP3, ASCII) 변환
- 예시 : 브라우저가 PNG 이미지를 표시하거나, SSL/TLS를 통해 데이터 암호화
7계층 - 응용계층(Application Layer)
- 역할 : 사용자와 네트워크 간의 인터페이스를 제공
- 내용 :
- 사용자가 네트워크를 사용할 수 있도록 지원
- 이메일, 파일 전송, 웹 브라우징 등의 애플리케이션이 동작
- 프로토콜 : HTTP, FTP, SMTP, DNS, Telnet
- 예시 : 웹 브라우저를 사용해 HTTP를 통해 웹 페이지를 요청하고 표시
계층별 통신과정
예를들어 PC에서 네이버로 접속하는 과정에서의 OSI 7계층 통신 과정을 간단히 살펴보도록 하겠다.
*참고로 밑의 과정은 'PC > 라우터 > 네이버 서버' 까지만의 과정을 담은것이다.
네이버 서버에서 다시 PC로 회신하기 직전까지의 과정을 설명한 것이니 이 점 참고하도록 하자.
PC → 라우터
- PC에서 데이터 생성 (7계층~1계층)
- PC는 사용자가 요청한 데이터를 7계층부터 1계층까지 캡슐화하여 전송한다.
- 데이터에는 HTTP 헤더(7계층), TCP 헤더(4계층), IP 헤더(3계층), 이더넷 헤더와 트레일러(2계층)가 모두 포함된다.
- 이 데이터는 **물리 계층(1계층)**을 통해 전기 신호로 변환되어 라우터로 전달된다.
라우터에서 처리
- 라우터는 1~3계층만 디캡슐화한다.
- 라우터는 데이터 링크 계층(2계층)의 헤더와 트레일러를 제거하여 프레임을 디캡슐화하고, 네트워크 계층(3계층)의 IP 헤더를 확인한다.
- 목적지 IP 주소(예: 223.130.195.200)를 확인하고, 라우팅 테이블을 기반으로 다음 목적지로 데이터를 전송할 경로를 결정한다.
- 라우터는 4~7계층 데이터에는 손대지 않는다.
- **TCP 헤더(4계층)와 HTTP 요청 데이터(7계층)**는 그대로 유지된다.
- 라우터는 4~7계층의 데이터를 읽지 않고, 3계층(IP 헤더)까지만 처리한다.
- 새로운 데이터 링크 계층(2계층)의 캡슐화 수행
- 라우터는 다음 네트워크 장치(예: ISP 라우터)의 MAC 주소를 사용해 새로운 프레임을 캡슐화한다.
- 이 데이터는 다시 물리 계층(1계층)에서 신호로 변환되어 다음 네트워크로 전송된다.
네이버 서버에서 처리
- 네이버 서버는 1계층부터 7계층까지 디캡슐화한다.
- 물리 계층(1계층): 신호를 비트로 복원.
- 데이터 링크 계층(2계층): 프레임의 MAC 주소를 확인하고, 자신의 네트워크 인터페이스에 도착했는지 판단.
- 네트워크 계층(3계층): IP 주소를 확인하고, 자신의 서버 IP인지 확인.
- 전송 계층(4계층): TCP 헤더를 제거하고, 포트 번호(예: 80)를 확인.
- 응용 계층(7계층): HTTP 요청 데이터를 복원하여 웹 서버에서 처리.
요약
- PC → 라우터: PC에서 7계층까지 캡슐화한 데이터를 라우터로 전송.
- 라우터:
- 1~3계층만 디캡슐화하여 IP 주소를 확인하고, 적절한 경로로 데이터 전송.
- 4~7계층 데이터는 그대로 유지.
- 라우터 → 네이버 서버:
- 라우터에서 다시 1~2계층을 캡슐화하여 데이터를 전송.
- 네이버 서버:
- 최종적으로 1계층부터 7계층까지 디캡슐화하여 데이터를 복원하고 처리.
5, 6계층은 어디로??
위 통신 과정을 보면 5,6계층은 건너 뛴 채, 7 > 4 > 3 > 2 > 1 계층 순으로 캡슐화가 진행됐다.
- 6계층(표현 계층)과 5계층(세션 계층)은 명시적으로 작동하지 않았던 것이 아니라, 상위 계층(7계층)이나 하위 계층 (4계층)에 통합되어 처리되었다.
- 실제 네트워크 환경에서는 OSI 모델의 7계층 구조를 모두 독립적으로 사용하는 경우는 드물다. 대신, TCP/IP 모델처럼 응용 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층으로 단순화된 구조를 주로 사용한다. <중요>
- 네이버 접속 과정에서도 7계층(응용 계층)과 4계층(TCP 전송 계층)이 6계층과 5계층의 역할을 일부 포함하여 수행했다.
2번째 줄에 적혀있는 것 처럼 OSI 7계층의 구조를 모두 독립적으로 사용하는 경우는 드물다고 한다.
밑에 상세 설명을 보도록 하자.
1. 5계층(세션 계층)
역할:
- 세션 관리: 연결 설정, 유지, 종료.
- 동기화: 데이터 흐름의 동기화(예: 대용량 데이터의 흐름 관리).
- 연결 복구: 전송 중단 시 복구 가능.
7계층과 4계층에서 대신 수행하는 이유:
- 7계층(응용 계층):
- HTTP(S), FTP 등 응용 계층 프로토콜은 자체적으로 세션 관리 기능을 포함하는 경우가 많다.
- 예: HTTP는 클라이언트와 서버 간 요청-응답 구조를 통해 세션을 유지.
- 4계층(전송 계층):
- TCP는 연결형 프로토콜로, 연결 설정(SYN), 유지(ACK), 종료(FIN) 등의 세션 관리 기능을 제공한다.
- 세션 계층의 기능을 일부 흡수하여 더 이상 독립적인 세션 계층이 필요하지 않게 되었다.
2. 6계층(표현 계층)
역할:
- 데이터 변환: 서로 다른 시스템 간 데이터 형식 변환(예: EBCDIC ↔ ASCII).
- 암호화/복호화: 데이터를 안전하게 전송하기 위해 암호화.
- 압축/해제: 데이터 크기 최적화를 위해 압축과 해제.
7계층에서 대신 수행하는 이유:
- 데이터 변환:
- 현대 네트워크는 UTF-8 같은 표준 데이터 형식을 사용하기 때문에 데이터 변환의 필요성이 크게 줄어들었다.
- 응용 계층에서 데이터를 UTF-8 형식으로 직접 처리하는 경우가 많다.
- 암호화/복호화:
- HTTPS를 사용할 때 TLS/SSL 암호화는 응용 계층에서 처리된다. (브라우저나 웹 서버가 수행)
- 표현 계층이 독립적으로 동작하지 않고, 응용 계층에서 이 기능을 포함하게 되었다.
- 압축/해제:
- Gzip, Brotli 같은 데이터 압축도 응용 계층에서 처리된다.
- 예: HTTP 응답 헤더에 Content-Encoding: gzip을 포함하여 브라우저가 압축을 처리.
3. TCP/IP 모델에서 5, 6계층이 생략된 이유
TCP/IP 모델은 실질적으로 사용되는 네트워크 모델이며, OSI 모델의 5계층(세션 계층)과 6계층(표현 계층)은 포함하지 않는다. 대신, 그 기능을 다음과 같이 통합하여 간소화한다:
- 세션 계층: TCP의 연결 관리 기능으로 통합.
- 표현 계층: 응용 계층(HTTP, FTP 등)에 통합.
4. 결론
- 5계층과 6계층의 역할은 현대 네트워크에서 독립적으로 동작하기보다는, 7계층(응용 계층)과 4계층(전송 계층)이 대신 수행한다.
- 이는 네트워크 프로토콜 스택의 최적화와 간소화를 통해 이루어진 결과이다.
- 따라서 네트워크 통신 과정에서 5계층과 6계층의 존재는 보이지 않을 수 있지만, 그 역할은 여전히 응용 계층이나 전송 계층에서 수행된다.
공부 하면서 알아본건데 혹시 틀린 정보가 있다면
정정 댓글 달아주시면 감사하겠습니다!
'네트워크' 카테고리의 다른 글
[네트워크] NAT, 브리지(Bridged), 호스트 전용(Host-Only) + NAT 네트워크 (0) | 2024.12.09 |
---|---|
[네트워크] TCP/IP 4계층 통신 과정 (1) | 2024.12.05 |