OSI 7Layer

HunkiKim·2022년 9월 1일
0
post-custom-banner

OSI 7계층

OSI 7계층이란 국제표준화기구(ISO)에서 개발한 모델로, 네트워크 프로토콜 디자인과 계층을 나눠 설명한 것이다. 다시 말해 ISO에서 만든 네트워크 통신의 7단계 과정이다.

OSI 7계층은 Application Layer , Presentation Layer, Session Layer, Transport Layer, Network Layer, Data Link Layer, Physical Layer로 나뉘어져 있다.

표로 나누어보면

OSITCP/IPTCP/IP Protocol Suite
ApplicationApplicationHTTP,FTP,SMTP,DNS,RIP,SNMP
Presentation위와 동일위와 동일
Session위와 동일위와 동일
TransportTransportTCP,UDP
NetworkInternet{ARP},{IGMP,ICMP}
Data-LinkNetworkAccessEthernet,Token Ring, Frame Relay, ATM
Physical--

Application Layer

이메일, 웹서핑 등과 같은 서비스를 제공하고 제공받기 위해 어떤 형식으로 메시지를 주고 받을지에 대한 프로토콜들이 모여있는 레이어라고 생각하면 된다. 이는 endSystem에만 존재한다.

네트워크 계층의 모델 중 트랜스포트 이하의 게층들은 데이터 전송을 담당하고 있으므로 이들 데이터 전송 관련 계층을 제외한 모든 영역이 애플리케이션 계층의 범주이다.

구조

  • Client-Server 구조 : 서버와 클라이언트 간 통신
    • 예시로 아마존,구글 검색 등이 있다.
    • Server : 항상 켜져있는 호스트로 서비스 제공의 주체, 고정 IP 사용 데이터 센터로 확장
    • Client : 클라이언트들 간 직접 통신을 하지 않는다. 항상 서버를 경유한다.유동 IP도 가능, 간헐적 통신(Client가 필요하면 통신)
  • P2P (Peer to Peer) 구조 : 호스트 끼리 직접 통신
    • 예시로 토렌트,스카이프가 있다.
    • 항상 켜져 있는 서버가 없다. 서버를 통해서만 통신이 이루어지지 않는다.
    • 종단간 직접적으로 통신
    • 각 pear들은 서비스를 요청하고 제공 둘 다 가능
    • 관리 어렵

프로토콜

  1. 사용자 직접 사용 프로토콜
  • HTTP : 웹 클라이언트,서버 사이에서 HyperText 데이터를 주고 받을때 사용
  • FTP : 서버를 통해 파일을 주고 받을때 사용
  • Telnet,SSH : 원격에서 서버를 제어할 때 사용
  • SMTP,POP,IMAP : 메일을 송수신하고 보관할 때 사용
  • SMP,AFP : LAN 안에서 파일을 공유할 때 사용
  1. 사용자 간접 사용 프로토콜
  • DNS : 도메인명과 IP 어드레스의 정보를 서로 변환할때 사용
  • SSL/TLS : 통신 데이터를 암호화하여 주요 정보를 안전하게 주고받을 때 사용
  • DHCP : LAN 내의 컴퓨터에게 IP 어드레스를 할당할 때 사용
  • NTP : 네트워크에 연결된 장비들의 시스템 시간을 동기화할 때 사용
  • LDAP : 네트워크에 연결된 자원의 통합관리에 필요한 디렉터리 서비스를 제공할 때 사용

Presentation Layer

Presentation Layer는 네트워크 사의 여러 다른 기종 시스템들이 저마다 다른 데이터 표현 방식을 사용할 때, 이를 통일된 구문 형식으로 변환 시키는 기능을 수행하는 계층이다.

데이터 값이 여러 다양한 시스템에 저장될 때 그 값들은 각각의 시스템에서 다른 방법으로 표현된다. 예를 들어 정수형은 시스템에 따라 16bit,24bit 등으로 표현되기 때문에, 통신할 때 양쪽 개체간의 메시지가 같은 뜻으로 교환해야 한다. 따라서 두 App Layer 간의 메시지 교환은 동일한 가상의 문법이 상호 합의 되어 있어야 한다.

이러한 번역기/변환기 역할이 바로 Presentation Layer이다.

역할

  • App Layer의 다양한 표현양식(Syntax)을 공통의 형식으로 변환
  • 암호화(Encryption)
  • 압축(Compression)
  • 코드 변환
    • 서로 다른 상이한 형태의 코드 변환(ASCII, BCDIC, Binary 등), 파일 변환, 문장 축소화 등
  • 예를 들면 MIME 인코딩, 암호화 , EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것, 해당 데이터가 TEXT인지, 그림인지, GIF인지, JPG인지의 구분 등이 포현 계층의 몫이다. 즉 사용자의 명령어를 완성및 결과 표현, 초장/압축/암호화

Session Layer

응용 프로그램간의 연결을 성립하게 하고 안정되게 유지관리하며 작업 완료 후 연결을 끊는 역할을 담당한다. 4계층인 통신 계층에서도 연결은 맺고 종료할 수 있지만 어느 계층에서 통신이 끊어졌는지 판단하는데 한계가 있다. 따라서 4계층과 다르게 응용 프로그램 관점에서 보는 것이다.

세션계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 예를 들어 HTTP에서 했듯이 사용자 정보를 계속 유지하거나 지속하거나를 결정하는데 대표적으로 로그인이 있다. 로그아웃까지 통

방식

  • 동시 송수신 방식(duplex)(사실 단방향 두개 쓴거,전역 변수) : 두 대의 단말기가 데이터를 송수신하기 위해 동시에 각각 독립된 회선을 사용하는 통신 방식
  • 반양방향,반이중 방식(half-duplex, 무전기) : 양방향이 가능하지만 한쪽이 통신하는 도중에 다른 한쪽은 통신이 불가능하다.
  • 전이중 방식(Full Duplex, 소켓) : 두개의 통신장치가
    동시에 통신이 가능한 통신 방식

기능

  • 접속 설정 및 해제 : 세션을 설정 및 해제하는 기능, 즉 TCP/IP 세션을 만들고 없애는 책임을 진다.
  • 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다.
  • 여러 세션들의 효율을 높이기 위해 1개의 같은 접속계층을 사용할 수도 있고 1개 세션이 속도를 높이기 위해 다수의 전송 계층을 사용 가능하다.
  • 양 끝단의 응용 프로세스가 통신을 하기 위한 세션을 확립/유지/중단 (운영체제가함) 기능을 제공한다.
  • 토큰을 사용함으로써 대화(dialogue)를 관리한다. token은 어떤 서비스의 실행할수 있는 권리이다.

Transport Layer

서로 다른 호스트들의 process들은 Transport Layer를 통해 logical한 communication을 주고 받는다.

상위 계층들이 데이터 전달이나 유효성이나 효율성을 생각하지 않도록 해준다.

트랜스포트 계층의 프로토콜은 종단 시스템에서만 구현된다. 중간 지점 같은 라우터강 아닌 호스트(app layer, PC, smartphone)등에서 구현된다.

end-system 위에서 동작하며 segment라는 단위로 패킷을 주고받는다. 데이터는 계층마다 다르게 존재하는데 app계층에선 메세지 , transport 계층에선 세그먼트, 네트워크 계층에선 데이터그램으로 존재한다. 이는 큰 메세지를 세그먼트인 작은 조각으로 분할하고, 각각의 조각에 트랜스포트 헤더를 추가해 나중에 헤더를보고 합칠 수 있게 해준다. 그 후 세그먼트는 네트워크 계층에서 데이터그램안에 캡슐화되어 전달된다. 나중에 이를 분해하면서 해석한다.

네트워크 계층으로 보내고 받을때 다중화와 역다중화를 이용한다.이를 알려면 먼저 application과 transport 은 소켓을 이용하여 서로 통신하는데 트랜스포트 계층 세그먼트 데이터를 올바른 소켓으로 전달하는 작업을 역다중화, 반대로 출발지로부터 소켓을 받아 데이터를 모으고, 이를 세그먼트 단위로 묶어 생성하기 위해 세그먼트 앞에 헤더를 붙여 캡슐화하고, 이 세그먼트들을 네트워크 계층으로 보내는 작업을 다중화라고 한다.

비연결형,연결형 다중화는 TCP,UDP에서 나오니 나중에한다.

그리고 시퀀스 넘버 기반의 오류 제어 방식을 사용하는데 이는 TCP,UDP에서 더욱 자세히 하겠다.(ACK number & Sequence)

우편부를 항상 생각하자.

Network Layer

우리가 만든 데이터그램을 어디로 전달해야할지를 정해야 한다. 최종 목적지에 도달하기 위해 네비처럼 알려줘야 하는데 이를 라우팅이라고 한다. 라우팅을 해주는 계층이 네트워크 계층이다.

즉 라우트는 경로이고, 라우팅은 찾아가게 하는 과정인데 찾아주는 규칙 사용하는 프로토콜은 라우팅 프로토콜이라고 한다. 라우팅에 의한 결과가 라우트이다.

데이터링크 계층은 연결된 이웃 컴퓨터와 통신만을 한다. 노트북,데탑 이런것 뿐만 아니라 라우터 스위치등 주소가 부여되어 통신 가능한 것들을 말한다. 데이터링크가 옆 노드만 신경을 쓰면 네트워크 게층은, 출발지에서 목적지, 즉 End to End만 신경쓴다.

즉 받는 목적지와 보낸 출발지를 붙여서 데이터 링크 계층으로 보내는 것이다. 그외에도 여러 정보가 붙여져서 보내지게 된다. 이런식으로 붙여지는걸 캡슐화라고 한다.

주요 역할

  • 패킷 전달(Packet Forwarding): 종단 간 (end-to-end)의 패킷 전달을 수행.
  • 라우팅 (Routing) : 종단 간 패킷을 전송할 때, 라우팅 프로토콜을 기반으로 가장 효율적인 경로를 선택하여 패킷을 전송할 수 있게 함.
  • 논리적인 주소 (Logical Address) 사용 : IP 주소를 사용하여 사용자 데이터를 목적지 장치까지 전달. 즉, 전송 계층으로부터 받은 데이터에 송수신 장치의 IP 주소들을 포함하는 IP 프로토콜 헤더를 붙여 캡슐화를 수행한 후 패킷을 전송.

네티워크 계층의 데이터를 패킷, 전송 계층의 데이터를 세그먼트, 데이터 링크의 데이터를 프레임이라고 한다.

스위치 장비에서 관리하고 있는 주소가 맥주소, IP 주소가 논리적 주소면 맥주소는ㄴ 물리적 주소이다. MAC은 변하지않는 장치의 고유번호로 맥 어드레스 테이블(Mac Address Table)은 표지판과 같은 역할을 해준다. 즉 현재의 갈림길에 정보는 알지만 다음에 나올 표지판은 모르는 것이다. 그래서 스위치가 맥어드레스테이블을 통해 옆 노드간의 통신을 담당한다.

라우팅 테이블에는 MAC주소는 없고, 논리적 주소인 IP로 허브들을 관리하고 있다.네트워크 대역대만 보고 몰아서 보내기 때문이다.

Data Layer

네트워크 계층부터 위쪽 계층은 소프트웨어적 특성을 가지고 있다면 데이터링크는 하드웨어와 소프트웨어적 특성을 모두 가지고 있다. 소프트웨어와 하드웨어를 연결하는 다리 같은 역할을한다.

데이터링크 계층에선 연결된 이웃 컴퓨터와의 통신만을 생각한다. 직접 연결된 서로 다른 2개의 네트워크 장치간 데이터 전송을 담당한다.

  • MAC(Media Access Control) 이라고 하는 매체 접근 제어 가능
  • 이 계층에서 전송되는 데이터를 프레임이라고 한다.
  • 48비트 길이의 주소를 가진다.
    • MAC 주소
    • 물리 주소 주소
    • 하드웨어 주소
    • Burned-in Address

주요 역할

  • 프레이밍(Framing): 물리 계층을 통해 수신한 신호를 조합하여 프레임단위의 정해진 크기의 데이터 유닛으로 만들어 처리
  • 흐름 제어(Flow Control) : 송신 측과 수신 측 간에 데이터를 주고받을때 데이터 흐름을 적절히 제어
  • 오류 제어(Error Control) : 오류 복원하거나 재전송
  • 접근 제어(Access Control) : 장치가 여럿 존재할 때, 데이터 전송 여부 결정
  • 동기화(Synchronization) : 프레임 구분자 (특별한 비트패턴)

MAC은 2계층 데이터링크와 관련된 프로토콜이다.

Physical Layer

말그대로 0과 1을 가진 디지털 시그널을 전압으로 전달해야하고, 전압을 디지털 시그널로 바꿔야 한다. 이런 전기적 특성을 이용해 신호를 만드는 역할을 물리계층에서 한다.

이진 데이터를 어떤 시그마로 만들고, 신호를 주고받기 위한 전기적, 과학적, 전파적 이러한 특성을 정의하는 계층이 제 1계층이다.

즉 캡슐화가 완료된 데이터를 전기신호로 바꾸어 전송하는 역할을 한다. 단, 데이터를 전달하는 역할만하고 오류 제어 기능은 수행하지 않는다.

post-custom-banner

0개의 댓글