치춘짱베리굿나이스
OSI 7계층 본문
OSI 7계층
프로토콜?
단어 뜻이 규약, 협약으로, 비단 네트워크 뿐만 아니라 여러 분야에서 상호간의 소통 및 교류를 위한 사회적 약속 및 규칙을 의미한다
예를 들어 편지를 부치기 위해 우체국에 가야하는 것도 일종의 프로토콜이라 할 수 있겠다
마찬가지로 네트워크에서의 프로토콜은, 네트워크 환경 내의 모든 기기가 통신하며 데이터를 주고 받기 위한 규약이라고 할 수 있다
네트워크 프로토콜이 정해지지 않을 경우, 각 기기들은 독자적인 방식으로 통신을 시도할 것이고, 그러다 보면 우연하게 보내고자 했던 요청이 잘 도착할 수도 있지만 대부분의 경우 실패할 것이다
따라서 프로토콜을 사전에 정의하여 요청 및 응답의 포맷, 각 이벤트별 행동 등을 사전에 전역으로 정의하여 모든 기기가 해당 규약을 따라 원활히 통신하도록 한다
잘 알려진 프로토콜로 HTTP (HyperText Transfer Protocol) 와 FTP (File Transfer Protocol) 가 있다
프로토콜 계층화 (프로토콜 레이어링)
프로토콜을 이용한 통신 과정을 기능에 따라 계층으로 분리한 것을 프로토콜 레이어링이라고 한다
프로토콜과 그에 따른 처리 과정은 굉장히 복잡하기 때문에 만약 계층의 분리 없이 모든 작업을 한 단계에서 전부 진행하다 보면, 업무가 복잡해지고 구현이 어려워진다
따라서 업무에 따라 계층을 전부 분리한 뒤, 각 계층은 자신이 담당하는 업무만 수행하며 그 외의 업무는 다른 계층들에게 위임하여 재귀적으로 작업을 수행하도록 하는 것이 프로토콜 계층화이다
한 계층에서의 처리가 완료되면 다음 단계 계층으로 넘어가고, 순차적으로 작업이 수행된다
보통은 하드웨어 작업 (신호의 변환 및 양자화 등) 계층과 소프트웨어 작업 (인터넷상에서 여러 링크를 거치거나, 목적지 주소로 이동하는 등) 계층으로 분리하고, 그 안에서 세부적으로 더 나눠준다
쉽게 말해, 프로그래밍을 할 때 각 기능 단위별로 파일을 분리하고 함수로 쪼개는 모듈화라고 생각하면 된다
프로토콜 계층화의 장점은 다음과 같다
- 각 프로토콜간 상호 독립적인 기능만 두기 때문에, 프로토콜 각각의 독립적인 수정이 가능하다
- 서로 다른 프로토콜이 서로에게 영향을 미치지 않는다
- 따라서 오류가 발생해도 특정 계층에서 발생한 오류는 해당 계층에서만 고치면 해결된다
- 각 프로토콜 내부 동작 원리를 모르더라도, 입력을 넣으면 출력이 나오기 때문에 어떤 상황에서 어떤 출력을 내보내는 지 알기 쉽다 (블랙박스 구조)
프로토콜 계층화의 규칙은 다음과 같다
- 각 계층이 양방향성을 띄어야 한다
- 한 계층은 송신만 담당하고, 한 계층은 수신만 담당하는 방식이 아닌, 송/수신을 모두 다룰 수 있어야 한다
- 송신 객체, 수신 객체에 레이어가 동일하게 쌓여 있어야 한다
- 송신 객체가 5계층으로 나누어져 있다면, 수신 객체도 5개로 나뉜 프로토콜 계층이 필요하다
- 각 계층이 양방향성을 띄어야 하는 이유도 여기에서 오는데, 송신 객체에서 각 계층별로 수행한 작업을 수신 객체는 거꾸로 행하기 때문이다
OSI 7계층이란?
네트워크에서 통신이 일어나는 7단계의 과정으로, 매우 잘 정의된 프로토콜 계층화 사례 중 하나이며 국제표준화기구 (ISO) 에 의해 산업적 표준화 되었다
원래는 네트워크 장치 관련 규약이 없었기 때문에 기기마다 중구난방이라 호환이 거의 불가능했으나, OSI 7계층의 표준화를 통해 모든 데이터 기기가 이 규약을 지키면서 설계되어 호환이 가능하게 되었다
통신이 일어나는 과정을 단계별로 파악할 수 있기 때문에, 흐름을 알아보기가 쉽고 문제가 발생해도 어느 계층에서 문제가 발생했는지 파악이 수월해 문제를 고치는 데 소모되는 시간과 에너지가 적다
프로토콜 계층화의 특성상 모든 계층이 독립적으로 운용되기 때문에, 한 계층에서의 수정이 다른 계층에 영향을 미치는 것을 방지할 수 있다
- 상위 계층 (5~7계층) 은 데이터 생성을 담당하고, 소프트웨어 위주이다
- 하위 계층 (1~4계층) 은 데이터 전송을 담당하고, 하드웨어 위주이다
토막상식: 간단한 컴퓨터 연결 구조
같은 라우터에 연결된 컴퓨터들끼리 같은 네트워크에 속해 있고, 라우터와 라우터가 계층 구조로 연결되어 결과적으로는 모든 라우터가 서로서로 연결되는 형태를 띈다
모든 라우터가 연결되어 있다는 것은 모든 네트워크가 연결되어 있다는 의미이므로 인터넷 (Internet = Internetwork) 라고 부른다
세부적으로는 스위치 등 장치들이 추가되지만 우선은 이렇게 있다고 가정하자
1계층: 물리계층 (Physical Layer)
컴퓨터는 디지털 신호 (0, 1로만 이루어진 불연속적인 신호) 를 다루는데, 실제 통신을 가능케 하는 요소 (전선, 전파 등) 는 아날로그 신호 (사인파 등 연속적인 신호) 만을 다룬다
물리계층에서는 전기적, 기계적 특성을 이용하여 통신 케이블 (또는 안테나) 등의 물리적 매체를 통해 데이터를 전송하는 역할을 하며, 그 과정에서 디지털 신호와 아날로그 신호간의 변환을 함께 담당한다
실제 물리적인 데이터의 이동은 물리 계층에서만 일어난다
물리 계층에서 이루어지는 일
송신 객체 (데이터를 보내는 쪽) 에서는
- 2계층 (데이터 링크 계층) 으로부터 받은 Frame을 실제 비트로 해석할 수 있도록 연속적인 비트스트림으로 만든다
- 이때의 데이터는 7계층부터 2계층까지를 거쳐 캡슐화가 완료된 상태이다
- 디지털 신호를 아날로그 신호로 변환한다
- 변환한 아날로그 신호를 물리적 매체를 통해 전송한다
수신 객체 (데이터를 받는 쪽) 에서는
- 물리적 매체로부터 아날로그 신호를 수신받는다
- 아날로그 신호를 디지털 신호로 변환한다
- 이때의 데이터는 2계층 이상의 계층에서 읽어들이기 쉽도록 연속적인 비트스트림으로 변환된다
- 2계층부터 7계층까지 거치면서 이 데이터는 사용자가 해석할 수 있는 데이터 형태로 변환될 예정
기타 특징
- 통신 단위는 비트 (bit) 이다
- 처리하는 단위는 전기신호, 광신호 등 연속적인 전기의 흐름 (AC, DC, Sin, Cos 등)
- 물리계층에서는 이러한 신호들에 비트를 실어 통신을 진행한다
- 데이터를 전송만 할 뿐 데이터의 내용물과 에러 여부에는 관심이 없다
- 인코더 / 디코더는 PHY 칩에 하드웨어적으로 구현되어 있다
- 통신 케이블, 리피터, 허브, 코덱, 모뎀 등이 물리 계층에 해당하는 장비들이다
2계층: 데이터 링크 계층 (Data Link Layer)
물리 계층의 한계
물리 계층은 디지털 신호를 아날로그 신호로 바꾸어 보내거나, 아날로그 신호를 디지털 신호로 바꾸어 수신받는 데에만 집중한다
따라서 물리 계층은 이 데이터가 어느 컴퓨터에서 온 건지 모르고, 이 데이터가 어느 컴퓨터로 보내져야 하는지도 관심없다
집 앞 우편함은 우편물을 받기만 하지, 이 우편물어 어디서 온 건지는 전혀 신경쓰지 않는 것처럼 말이다
만약 네트워크 구조에 물리 계층만 존재한다면, 내 우편물이 어디로 가고 있는지도 모를 것이고, 내가 받은 이 우편물이 누가 보낸 우편물인지도 알아볼 수 없게 되어버린다
망망대해에 유리병 편지를 던져놓은 것과 같다…
데이터 링크 계층의 역할
- 같은 네트워크 (같은 라우터에 속해 있는) 장비들끼리 데이터를 교환할 수 있도록 한다
- 데이터 링크 계층에서 데이터는 ‘프레임' 이라는 독특한 단위로 캡슐화된다
- 물리 계층과 직접적으로 연결되어 있는 만큼, 물리 계층에서 발생할 수 있는 오류를 관리하는 역할을 한다
- 물리 계층은 단순히 신호를 변환하고 송신, 수신하는 역할만 담당하므로, 그 과정에서 발생할 수 있는 오류의 관리 및 예방은 데이터 링크 계층이 담당한다
쉽게 말하자면 동네 우체국 같은 느낌으로, 같은 네트워크 (동네) 안에서 Hop-to-hop 방식으로 데이터를 전송한다
데이터 링크 계층의 3가지 역할로는,
- 흐름 제어
- 송신 객체와 수신 객체 간 속도 차이를 제어한다
- Stop and Wait 방식은 데이터를 보내고, 잘 도착하였다는 응답인 ACK가 돌아올 때까지 기다리며, 비효율적이다
- Sliding Window는 여러 프레임을 한꺼번에 보내며, ACK 응답이 필요하지 않아 속도가 느리지 않다
- 오류 제어
- 전송오류를 검출하고, 간단한 오류일 경우 직접 수정한다
- 심각한 오류일 경우 재전송을 요청하는데, 이 과정을 Automatic Repeat reQuest (ARQ) 라고 한다
- 대개 송신 객체에 NAK 응답을 보내는 것으로 재전송을 요청한다 (Selective Repeat ARQ)
- 회선 제어
- 각 신호가 충돌하지 않도록 제어한다
- ENQ/ACK 기법은 1대1 통신에 사용되며, 데이터를 수신받거나 요청을 받을 때마다 ACK를 보내는 방식이다
- Polling 기법은 1대다 통신에 사용되며, Select 모드에서는 송신 측이 수신 측을 선택하고, Poll 모드는 송신 측이 수신 측에게 데이터 수신 여부를 확인한 후 전송한다
프레임
한 컴퓨터가 여러 아날로그 신호를 수신받으면 1계층에서는 연속적인 비트스트림으로 만들어 2계층으로 올려주는데, 이 데이터는 각각 다른 곳에서 흘러들어온 데이터가 서로 섞여있기 때문에 적절히 잘라 분리해주어야 우리가 원하는 정보를 얻을 수 있다
이때 프레임은 이 ‘자르는 기준' 을 정의해준다고 할 수 있는데, 우리가 보낼 데이터를 특정한 비트 조합 (플래그) 으로 감싸 ‘여기가 데이터의 시작이고, 여기가 데이터의 끝이야~’ 라고 알려주는 것이다
프레임은 몇 가지 기준으로 분류할 수 있으며,
- 고정 크기 프레임: 길이가 정해져있기 때문에 프레임간 경계를 구분지을 필요가 없으며, WAN과 ATM에서 사용한다
- 가변 크기 프레임: 길이가 들쭉날쭉하기 때문에 각 프레임의 끝을 명확하게 규정해주어야 하며, LAN에서 사용한다
- Byte 기반 (문자 기반) 프레임: 내부 데이터들이 Byte 단위 (8Bit) 로 구분된다
- 내부 데이터들 중 플래그 또는 Escape에 해당하는 문자가 나타날 경우 그 앞에 Escape 문자를 하나 더 붙여 이 문자가 플래그가 아님을 명시한다 (Byte Stuffing)
- Bit 기반 프레임: 내부 데이터들이 Bit 단위로 구분되며, 연속적인 비트의 흐름으로 취급된다
헤더와 트레일러
데이터 링크 계층에서는 데이터를 프레임으로 캡슐화하는 것 뿐만 아니라, 헤더와 트레일러를 부착하여 데이터의 출발지와 목적지를 명시하고, 오류를 감지할 수 있도록 한다
이 덕분에 데이터 링크 계층에서 어떤 데이터가 어느 장치로 전송되어야 할 지 알 수 있는 것이다
헤더에는 출발지의 MAC 주소와 목적지의 MAC 주소가 들어가고, 이더넷 유형이 들어가는데, 이더넷 유형은 상위 계층에서 사용하는 프로토콜의 종류를 알려준다
트레일러는 특정한 규칙을 토대로 만들어지는 비트 덩어리인데, 수신 측 데이터 링크 계층에서 트레일러를 토대로 오류 여부를 검출하고 수정한다
MAC 주소
Media Access Control 주소이며, 각 기기의 네트워크 카드 (랜카드) 에 부여한 고유한 물리적 주소이다
모든 전자기기가 서로 다른 주소를 가지고 있으며, 총 48비트로 XX-XX-XX-XX-XX-XX 형식의 16진수로 표기한다
앞의 3자리는 제조사 고유 코드, 뒤의 3자리는 기기 고유 코드이며 가능한 가짓수는 281조 가지이다 (총 281조 개의 장치들이 통신을 할 수 있다는 뜻 ..)
MAC 주소는 랜 카드 자체에 각인되다시피 하기 때문에 사용자가 맘대로 바꿀 수 없다
장치간 데이터를 주고받으려면, 그 도착지가 어디인지는 알아야 그 쪽으로 데이터를 보낼 수 있는데, 이때 목적지 주소 역할을 하는 것이 MAC 이라고 할 수 있겠다
MAC 주소는 여기서 스윽 볼 수 있다
윈도우는 ipconfig를 쓰자
데이터 링크 계층에서 이루어지는 일
송신 객체 (데이터를 보내는 쪽) 에서는
- 3계층까지 만들어진 데이터를 캡슐화시켜 프레임 단위로 만든다
- 프레임은 앞에 헤더, 뒤에 트레일러가 부착된다
- 헤더에는 출발지와 목적지 주소 및 데이터의 내용이 정의된다
- 트레일러는 비트 에러를 감지하기 위한 추가 정보가 부착된다
- 디지털 신호들이 네트워크 상의 다른 장치에 도달할 수 있도록 물리 주소 (MAC 주소) 를 부착해준다
수신 객체 (데이터를 받는 쪽) 에서는
- 1계층에서 변환해온 디지털 신호에 오류가 없는지 감지하고 수정한다
- 역캡슐화를 이용하여 헤더와 트레일러, 프레임을 분리한다
- 이때 헤더에 적힌 목적지 MAC 주소를 확인하고, 내 주소와 다르다면 데이터를 버린다
기타 특징
- 데이터 링크 계층의 작업들은 랜카드에서 이루어진다
- 사용하는 단위는 프레임 (Frame) 이다
- 데이터 링크 계층에 해당하는 장비들로 네트워크 브릿지나 스위치 등이 있다
3계층: 네트워크 계층 (Network Layer)
인터넷은 라우터가 계층 구조로 연결되어 있으므로, 한 네트워크에서 다른 네트워크로 데이터를 전송할 땐 라우터를 필수적으로 거치게 된다
이처럼 수많은 네트워크들과 라우터들 사이에서 목적지 장치를 향한 길을 빠르고 안전하게 찾아 데이터를 넘겨주는 것이 네트워크 계층이 하는 일이다
3계층에서는 데이터의 안전하고 빠른 전달을 위해 다양한 종류의 프로토콜과 라우팅 기술을 사용한다
네트워크 계층의 역할
- 주소 (IP 주소) 를 부착하고, 경로를 설정한다
- Internetworking을 지원한다
- 종단 (장치에서 장치로) 간 패킷 송수신이 아니더라도, 중간 지점 게이트웨이 또는 라우터 등 인터페이스 간의 패킷 송수신을 의미한다
- 네트워크와 네트워크를 연결하기 때문에 Internetworking이다
- 데이터를 네트워크들 사이로 오갈 수 있게 하므로 실질적으로 인터넷이 가능하게끔 만들어 준다
- 라우터에서는 데이터가 이동할 수 있는 최적의 경로를 찾는다
IP
Internet Protocol의 약자로, IP 주소는 인터넷 프로토콜 주소이다
장치들이 서로를 인식하고 통신하기 위해 사용되는 특수한 일련번호로, DNS에 의해 번호가 아닌 문자열로 래핑되기도 한다
라우팅?
하나의 컴퓨터가 자신이 속하지 않은 네트워크에 속한 다른 컴퓨터와 통신할 때 발생한 패킷을 목적지까지 전달해 줄 때, 최대한 효율적인 (최적의) 경로를 찾아내는 것이 라우팅이다
서울에서 부산을 간다고 할 때, 어디를 거쳐가느냐에 따라 소요되는 시간이 천차만별일 것이다
이때 휴게소를 거쳐 거쳐 부산으로 도달하는 최적의 경로를 찾는 것이 라우팅이라고 할 수 있다
Route를 찾는 과정이므로 Routing이라고 생각하자
- 정적 경로 설정: 관리자가 네트워크에 대한 경로 정보를 직접 지정해준다
- 정해진 데이터만 참조하면 끝이므로 라우터의 부담이 없고, 속도가 빠르며 안정적이다
- 네트워크에 변화가 생기면 빠르게 대응하기 어렵고, 관리자가 네트워크 관련 지식에 빠삭해야 한다
- 동적 경로 설정: 인접한 라우터 간 라우팅 프로토콜을 통해 네트워크 정보를 공유하여 라우팅한다
- 네트워크의 실시간 변화에 대응하기 쉽고, 따로 누군가 관리해줄 필요 없이 라우터끼리 알아서 정보를 공유하기 때문에 비교적 인력 소모가 적다
- 라우터의 연산량과 메모리 소모가 늘어난다
네트워크 계층에서 이루어지는 일
송신 객체 측
- 3계층에서 7~4계층을 거친 데이터를 받아 IP 주소 (논리적 주소) 를 헤더에 부착하고, 2계층으로 넘겨준다
- 2계층에서는 데이터를 캡슐화 후 출발지와 목적지 MAC 주소를 헤더에 부착하고 (프레임), 트레일러를 부착한 뒤 1계층에 넘겨준다
- 1계층에서는 이 데이터를 아날로그 신호로 변환한 뒤 네트워크에 전송한다
라우터 측
- 1계층에서 객체로부터 아날로그 신호를 수신받고, 이를 디지털 신호로 해석하여 2계층으로 넘겨준다
- 2계층에서는 이전 2계층에서 부착한 프레임, 헤더, 트레일러를 분리하고 에러 검출 뒤 3계층으로 넘겨준다
- 3계층에서는 IP 주소를 해석하고 이 IP 주소와 라우팅을 통해 어디로 보내야 하는지 인식하고, IP주소가 담긴 헤더를 재부착한 뒤 2계층으로 넘겨준다
- 2계층에서는 다시 캡슐화하여 프레임으로 만든 뒤 아까 분리했던 헤더, 트레일러를 부착하고, 1계층으로 넘겨준다
- 1계층에서은 다시 아날로그 신호로 변환한 뒤 3계층에서 알아낸 목적지 방향으로 데이터를 전송한다
기타 특징
- 네트워크 계층의 작업들은 LAN과 LAN, 또는 LAN과 WAN을 연결하는 라우터에서 이루어진다
- 사용하는 단위는 패킷 (Packet) 이다
4계층: 전송 계층 (Transport Layer)
1~3계층 덕에 서로 다른 장치로부터 데이터를 수신받을 수 있었다
하지만 이 데이터를 어디서 사용하는 지 모르면 받기만 하고 사용을 할 수 없게 된다
택배를 받았는데 어디에 쓰는 물건인지 몰라 방치해 둔다고 해보자.. 안타깝다
또는 택배를 받았는데 박스가 다 뭉개지고 안의 물건이 훼손돼서 도착하면 반품 요청을 하기도 한다
전송 계층은 목적지 컴퓨터에서 어느 프로세스가 데이터를 사용하는지 알아내거나 관련 정보를 포함시키고, 더불어 1~3계층에서 심도있게 다루지 않았던 신뢰성 있는 통신을 보장한다
전송 계층의 역할
- 송신 객체와 수신 객체간 신뢰성있고 효율적인 데이터 전송을 위해 세부적인 오류 검출 및 재전송 요청 등을 진행한다
- 전송 프로토콜을 이용하여 데이터가 제대로 전송되었는지 검증한다
- 데이터를 송신할 땐 각 데이터별 포트번호를 부착하여 어느 프로세스에서 사용될 지 명시하고, 데이터를 수신했을 땐 해당 데이터의 포트번호를 보고 어느 프로세스가 데이터를 수신받아야 하는지 판단하여 넘겨준다
- 네트워크 계층이 호스트들 (장치들) 간의 논리적 통신을 돕는다면, 전송 계층은 응용 프로세스간의 논리적 통신을 돕는다
- 종단간 프로세스 통신을 지원한다
- 하위 계층 및 상위 계층에서 사용하는 제어 방법 및 내용에 관계없이 정보가 3~5계층 사이에서 내용이 바뀜 없이 투명하게 전송하도록 돕는다
- 이처럼 전송 계층에서 사용자들이 신뢰성 있는 데이터를 주고받을 수 있도록 도와주기 때문에, 상위 계층에서는 데이터 전달의 유효성이나 효율성을 생각치 않아도 된다
- 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜에서 상태 개념을 사용하며, 연결 기반으로 작동한다
- 연결 기반이라는 것은 전송 계층이 패킷들의 전송의 유효성을 체크하고, 유효하지 않은 (전송 실패한) 패킷을 재전송한다는 뜻
전송 계층에서 이루어지는 일
송신 개체 측
- 어느 프로세스에서 사용되는 데이터인지 포트번호를 부착함으로써 명시한다
수신 개체 측
- 포트번호를 확인하여 어느 프로세스에서 데이터가 사용되는지 확인하고, 프로세스로 넘겨준다
- 데이터가 잘 도착했는지 오류를 검사하고, 사용하는 프로토콜 (TCP, UDP 등) 에 따라 재전송을 요청하기도 한다
- 주로 TCP 프로토콜을 사용한다
TCP
연결지향 프로토콜 (Connecton-Oriented Protocol) 의 한 종류로, 1대1로 연결을 유지하여 통신한다
연결을 지속적으로 유지해야 하며, 따라서 누가 어떤 데이터를 보냈는지 연결을 통해 쉽게 파악 가능하다
연결된 상호간 신뢰적인 서비스를 제공하며, 패킷의 손실이나 패킷 중복, 순서바뀜 등이 없도록 ACK 신호를 이용해서 보장해준다
다만 이 연결 설정 유지때문에 자원을 많이 소비한다
TCP의 1대1 연결 설정은 3-way Handshaking을 통해 진행된다
- 클라이언트는 서버에게 통신 시작을 요청하는 SYN과 첫번째 세그먼트를 알리는 Seq(100) 을 전송한다
- SYN을 수신받은 서버는 이에 대한 응답으로 클라이언트에게 ACK (101) 와 Seq(200) 을 전송하고, 자기 자신도 클라이언트에게 통신 시작을 요청하는 SYN을 전송한다
- SYN을 수신받은 클라이언트는 이에 대한 응답으로 서버에 Ack(201)을 전송함으로써 연결이 성립되고, 이후 이 연결이 유지된다
UDP
비연결 프로토콜 (Connectionless Protocol) 의 한 종류이다
신뢰성이 낮으며, 패킷의 손실이나 중복 등을 거의 신경쓰지 않는다
TCP와 다르게 확인 응답 (ACK), 순서제어, 흐름제어, 오류제어 등의 과정이 전부 빠져 있으며, 대신 헤더의 길이가 짧아 헤더 처리에 많은 자원이 들어가지 않으며 연결을 유지할 필요가 없다
보통 1대 다로 통신하면서 빠른 요청 및 응답이 필요할 때 (멀티태스킹, 실시간 스트리밍 등) 사용한다
기타 특징
- 전송 계층의 작업들은 운영체제의 커널에 소프트웨어적으로 수행된다
- 사용하는 단위는 세그먼트 (Segment) 이다
5계층: 세션 계층 (Session Layer)
- 데이터가 통신하기 위한 논리적인 연결
- 통신을 하기 위한 대문
- 세션 계층부터는 응용 프로그램 관점에서 봐야 함
- TCP/IP 세션 설정, 유지, 종료, 전송 중단 시 복구 등의 기능 수행
- 세션을 엶으로써 정해진 시간동안 데이터 송수신을 가능케 해준다
- 종단간 응용 프로세스가 통신을 관리할 수 있도록 수단을 제공종단간 메시지 송수신을 진행하면서 Dialog control (Endpoint와 Token을 이용해 누가 전송받고 수신받을 차례인지에 대한 순서 조정 및 관리) 와 Synchronization (Stream으로 들어오는 데이터에 대하여 동기화 지점을 기록) 가 가능하게 도와주기 때문
- 동시 송수신 방식 (Duplex), 반이중 방식 (Half - Duplex), 전이중 방식 (Full Duplex), 체크포인팅과 유휴, 종료, 다시 시작 과정 등을 수행
- 세션 계층은 여러 경우들이 존재
- 세션 계층 하나당 한 개의 전송 계층
- 세션 계층 여러 개에 한 개의 전송 계층 공유
- 세션 계층 한 개에 여러 개의 전송 계층이 공유 (가장 일반적)
6계층: 표현 계층 (Presentation Layer)
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고 암호화
- 코드 간의 번역을 담당하며, 각 시스템별 데이터 형식 차이를 응용 프로그램 전에 보정해준다해당 데이터가 Text인지, 그림인지, 음악인지 등을 구분하는 것도 해당 계층의 몫
- 예를 들면 EBCDIC, ANSI 등으로 인코딩된 파일을 ASCII로 인코딩된 파일로 변환하는 등
- 결국 사용자의 명령어를 완성하고 결과를 표현 / 포장 / 압축 / 암호화하는 역할 수행
- 송신 시에 Encoding (암호화) 및 Compressing (압축) 을 수행했다면
- 수신 시에 Decoding (해독) 및 Decompressing (압축 해제) 을 수행한다
- Network Format <-> Application Format
7계층: 응용 계층 (Application Layer)
- 최종 목적지
- HTTP, FTP, SMTP, POP3, IMAP, Telnet 등의 프로토콜이 있다
- HTTP : 웹 상에서 웹서버 및 웹브라우저 상호간의 데이터 전송을 위한 응용 계층의 프로토콜전송계층에서는 TCP를 사용하고, 포트 번호는 80번이다
- www 상의 이미지, 비디오, 음성 등 거의 모든 형식의 데이터를 주고받을 수 있다
- 앞에서 송수신된 패킷들은 해당 프로토콜들에 의해 적절히 처리되며, 실제 응용 프로그램들은 이러한 프로토콜을 사용자가 쉽게 사용할 수 있도록 돕는다
- 이러한 응용 프로그램들 덕분에 사용자와 직접 상호작용하는 레이어로, 사용자에게 보여진다
참고 자료
[네트워크] OSI 7 계층 (OSI 7 Layer) 기본 개념, 각 계층 설명