본 포스팅은 'Wireshark로 배우는 컴퓨터 네트워크' 책과 동아대학교 컴퓨터네트워크 과목을 수강한 후 요약한 글입니다.
목차
1. 프로토콜 계층구조
1.1 계층구조
1.2 서비스
2. OSI 기본 참조 모델
2.1 계층화된 구조
2.1.1 계층 간 인터페이스
2.1.2 계층의 구성
2.3 캡슐화
2.4 OSI 모델의 계층 구조
2.4.1 물리층
2.4.2 데이터 링크층
2.4.3 네트워크층
2.4.4 전송층
2.4.5 세션층
2.4.6 표현층
2.4.7 응용 계층
2.5 OSI 계층의 요약
개요
통신에 대한 전체 모델을 이해하기 위해서는 OSI 모델과 TCP/IP 모델을 이해해야 한다. 1990년대 이전까지 OSI모델이 데이터 통신의 최종적인 표준이 될 것이라 믿었으나, 그렇게 되지 않았다. TCP/IP 프로토콜이 인터넷에서 광범위하게 시험을 거쳐서 사용되어 왔기 때문에 지배적인 상업적 구조가 되었으나 OSI 모델은 완전히 구현되지 않았다.
1. 프로토콜 계층구조
두 개의 개체가 서로 통신할 때는 반드시 프로토콜이 필요하다. 통신이 복잡할 때는 복잡한 임무를 여러 개의 계층구조로 나눌 수 있다. 이 경우에 각 계층별로 하나씩 프로토콜이 필요하다.
다음 그림은 통신이 하나의 계층에서만 이루어지는 예이다. 영희와 제인이 다른 언어를 사용한다고 가정하자.
두 사람간의 통신은 면-대-면으로 한 계층에서만 일어나며 프로토콜은 기호(수화)라고 할 수 있다.
제인이 이사를 가서 번역기- 우체국을 통해서 소통해야 하는 상황이 생겼다. 통신 절차로는
- 이 때 통신은 영희가 한국어로 편지를 쓴다
- 번역기를 통해 편지를 번역한 후 우체통에 보낸다
- 우편차량을 통해 제인 마을의 우체국으로 편지가 간다
- 제인은 번역기를 이용해 해석한다.
1.1 계층구조
그림 2.2에서, 두 개체가 서로 통신할 때는 프로토콜이 필요하다. 그림2.1과 달리 통신이 복잡해지면 임무를 여러 개의 계층구조로 나뉘게 된다. 각 계층별로 여러 개의 프로토콜이 필요하다!
여러 계층으로 나누는 이유?
통신을 한 계층으로 묶어도 되는데 그렇게 했을 경우 문제점이 많아진다. 예를 들어 인코딩전문이랑 번역기와 배달 전문인 우체국이 하나의 계층으로 묶인다면 우체국은 인코딩도 해야되고 배달도 해야된다. 우체국이 번역도하고 배달도 하고 ...? 그런 곳은 아니지 않느냐... 그리고 고장났을 경우 어떤 지점에서 문제가 발생했는지 파악이 어렵다.
1.2 서비스
각 계층별로 자신의 아래 계층의 서비스를 이용한다.
영희는 우체국의 서비스를 받아서 번역기를 돌린다.(아래 계층의 서비스를 받는다) . 서비스를 어떻게 하는가에 대해서는 알 필요가 없다(ex, 번역기 입장에서 "어떻게 배송되었는지?" Don't Care...!)
2. OSI 기본 참조 모델
OSI 모델은 모든 유형의 컴퓨터 시스템 간의 통신을 허용하는 네트워크 시스템을 설계하기 위한 계층 구조를 갖는 모델이다. 다시 말해 컴퓨터 간의 통신을 지원하기 위해 만들어진 절차를 표준화한 것이다.
2.1 계층화된 구조
- 물리적으로 장치A와 장치B의 계층과 중계 노드들의 처음 3계층만 이용해 패킷이 흐른다.
이유는 ? 질문
- 논리적으로 패킷은 계층 대 계층 통신을 한다. (장치 간의 경우 한 창치의 X계층은 다른 장치의 X계층과 통신한다.
이유는 ? 질문
- interface의 역할로는 계층 사이에 전달할 수 있는 절차를 제공한다.
2.2 계층-대-계층 통신
2.2.1 계층 간 인터페이스
데이터와 네트워크 정보는 인접한 계층 간의 인터페이스를 통해 이루어진다. 각 인터페이스는 자신의 바로 위 계층에 제공되는 정보와 서비스를 정의한다.(아래 계층은 위 계층으로 어떻게 보내줄지 준비가 되어 있어야 한다.) 네트워크는 각 계층의 기능과 계층 간의 인터페이스를 잘 정의함으로써 모듈성을 가진다.
인터페이스를 통과하기 이전에 헤더를 떼고, 헤더에 그 계층에서 필요한 정보를 사용한다.(os가 처리). 그 이후 헤더는 버려버린다.
2.2.2 계층의 구성
- 계층1,2,3 (네트워크 지원 계층)
하드웨어 부분으로 하나의 장치에서 다른 장치로 전송되는 데이터의 물리적인 면을 처리한다.
- 계층 5,6,7 (사용자 지원 계층)
관련없는 소프트웨어 시스템간의 상호 운용성 제공(ex. 카카오톡에 카카오페이 보안), TCP/IP 연동
- 계층 4 (전송 계층)
네트워크 지원 계층과 사용자 지원 계층을 서로 연결하고, 하위 계츠에서 전송한 내용을 상위 계층이 사용할 수 있는 형태가 되도록 보장한다.
정형화된 데이터가 1계층(물리층)을 통해 보내질 때, 데이터는 전자 신호로 변환되어 물리 링크를 따라 전송된다. 목적지에 도달하면, 신호는 제1계층에서 디지털 형태로 변환된다. 그런 다음 OSI 계층을 통해 거꾸로 올라간다. 각 데이터 블록이 다음 상위 계층에 도달하면, 해당 송신 계층에서 붙어있던 헤더는 삭제되고 그 계층에서 해야 할 일들을 수행한다. 제 7계층에 도달하게 되면, 메시지는 응용 프로그램에 적절한 형태로 수신자에게 전해진다.
2.3 캡슐화
N계층의 전체 패킷은 (Data + head)는 N-1 계층 패킷의 데이터 부분으로 전송된다. N-1 계층은 캡슐화된 패킷이 데이터인지 헤더인지 모르기 떄문에 캡슐화라고 한다. N-1계층은 N계층에서 오는 패킷을 하나의 완전한 단위로 취급한다. D3의 H3부분은 D2에서 봤을 때 데이터로 본다.
2계층의 T2가 무엇인가?
Trailer의 약자로, 받은 데이터에 오류가 있는지 없는지 검사하는 체크섬 같은 정보가 들어있다.
2.4 OSI 모델의 계층 구조
2.4.1 물리층(physical layer)
물리층은 물리 매체를 통하여 비트 스트림(bit stream)을 전달하는데 필요한 기능들을 조정한다. 또한 물리 장치와 인터페이스가 전송을 위해 수행해야 하는 절차들과 기능들을 규정한다.
Key Point. 물리층은 개별 비트들을 한 노드에서 다음 노드로 전달하는 책임을 가진다.
- 인터페이스와 매체의 물리적인 특성
- 비트의 표현 (부호화 유형) : 비트는 신호로 부호화
- 데이터 전송률(bps) : 초당 몇 비트
- 비트의 동기화 : 송수신자간 클록
- 회선 구성 : 점-대-점, 다중점
- 물리적 접속형태 : 그물형, 성형, 링형, 버스형
- 전송모드 : 단방향, 반이중, 전이중
2.4.2 데이터 링크층(data link layer)
물리층의 전송 설비를 신뢰할 수 있는 링크로 변환한다.
- 프레임 구성 : 물리층으로부터 받은 비트 스트림을 프레임(Frame)이라는 데이터 단위로 변환한다.
- 물리 주소지정 : 프레임이 서로 다른 시스템으로 전달되어야 하는 경우 송신자/수신자를 지정하기 위해 프레임에 헤더를 더한다 (ex. A가 B,C로 보낼 때 프레임 헤더 다르게), 송신자가 포함되어 있는 네트워크가 아닌 경우 수신자 주소는 다른 네트워크로 연결할 수 있는 장치의 주소가 설정된다(ex. A가 다른 네트워크에 있는 시스템에 보낼 때 라우터의 MAC을 알아야한다.
- 흐름 제어 : 속도 맞추기
- 오류 제어 : 손상, 손실된 프레임을 탐지하고 재전송하는 매커니즘을 실행한다.
- 접근 제어 : 둘 이상의 장치가 같은 링크에 연결되어 있을 때 어떤 장치가 제어권을 갖는지 결정한다.
2.4.3 네트워크층(network layer)
패킷(packet)을 네트워크를 통하여 발신지에서 목적지까지 전달을 책임진다.
패킷이란? 네트워크에 접속되어 있는 컴퓨터끼리 통신을 통하여 주고받는 데이터 단위
- 논리 주소지정 : 네트워크 층은 상위 계층으로부터 오는 패킷에 송신자와 수신자의 논리 주소를 포함하는 헤더를 더한다.
- 경로지정 : 패킷이 최종 목적지에 전달될 수 있도록 경로를 지정하거나 교환 기능을 제공한다.
2.4.4 전송층(transport layer)
전체 메시지의 프로세스 대 프로세스 전달을 책임진다. (ex. 내 pc의 카카오톡에서 친구 카카오톡까지 보내는 것을 다 책임지는 게 전송층!)
- 서비스 지점 주소 지정(포트 주소) : 컴퓨터가 싱글 프로그램으로 돌아가는게 아니어서 프로그램마다 포트주소(식별자)가 필요하다.
- 분할과 재조립 : 메시지를 세그먼트로 나누어 재조립, 손실 또는 교체된 세그먼트 식별 가능
- 연결 제어 : 비연결형(상대방 의사 x), 연결형
- 흐름 제어 : 종단간에서의 흐름 제어 실행
- 오류 제어 : 수신 측 전송층에 오류 없이 도착했다는 것을 보장하는 절차, 오류 교정은 항상 재전송을 통해 이루어진다(패킷이 깨져서 온 것은 못 고침. 무조건 재전송 !!)
2.4.5 세션층(session layer)
네트워크 대화 제어기로서 통신 시스템간 상호 대화 설정, 유지, 동기화 책임 , 1~4계층으로는 기능적으로 부족한 부분을 보완(ex. 연결을 유지하는 방법론)
- 대화 제어 : 반이중, 전이중
- 동기화 : 확인점을 추가 (ex. 확인점을 통해 어디서 문제가 생겼는지 파악하고, 재전송)(ex. s.w 버전에서 이어서 설치하겠습니까?)
2.4.6 표현층(presentation layer)
두 시스템 간에 교환되는 정보의 구문과 의미와 관련이 있다.
- 변환 : 서로 다른 컴퓨터는 서 다른 부호화 시스템을 사용하기 때문에 표현층은 서로 다른 부호화 방법 간에 상호운영성을 책임짐
- 암호화 : 전달되는 정보의 기밀 유지를 위해서 암호화와 복호화 담당
- 압축 : 정보에 들어 있는 비트의 수를 줄여줌 ( ex. 11111111 -> 18 (1이 8개 연속으로 나온다라는 뜻) )
2.4.7 응용층(application layer)
사용자(사람 or SW)가 네트워크에 접근 가능하도록 하는 기능을 제공한다. 응용은 계속 개발 되기 때문에 정의만 되어있다.
- 네트워크 가상 터미널
- 파일 전송, 접근,관리
- 전자우편 서비스
- 디렉토리 서비스
2.5 OSI 계층의 요약
'Computer Science > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터네트워크] IP주소 ② (0) | 2023.04.07 |
---|---|
[컴퓨터네트워크] IP주소 ① (0) | 2023.04.07 |
[컴퓨터네트워크] 프로토콜(Protocol) (0) | 2023.04.06 |