본문 바로가기

조금은 전문적인 이야기/IT

OSI7 Layer(Open Systems Interconnection Reference Model) - PC Communication part


목적


1980년대 초에 ISO는 업체들이 네트워크를 구현할 때 참조로 할 네트워크 모델의 필요성을 인식하고 1984년 OSI 참조 모델을 발표하게 되었다.

OSI 참조 모델은 응용 프로그램의 정보가 네트워크 매체를 통해 다른 컴퓨터의 응용 프로그램에 어떻게 전달되는가를 설명한다. 


통신 기능은 일련의 계층 집단으로 분할되며, 각 계층은 다른 시스템과 통신하려는 데에 필요한 관련된 기능을 수행한다. 각 계층은 그 기능들의 세부 내용을 은폐하고 보다 원시적인 기능을 수행하기 위하여 바로 아래에 있는 계층에 의존한다.


->  각각의 계층은 데이터를 전송하느냐 수신하느냐에 따라서 데이터를 아래쪽으로 전달하는지 위쪽으로 전달하는지의 전달 경로가 결정. 각각의 계층은 자신의 계층에서의 역할에 따른 작업에 의해서 데이터에 변형을 가하게 되고, 어떤 작업이 일어났는가에 대한 정보를 추가하여 데이터를 전달하게 된다. 각각의 계층에서 자신의 역할에 따라 추가한 정보를 헤더(Header)라고 한다.



계층 1: 물리 계층(Physical layer)


물리 계층은 실제 장치들을 연결하기 위해 필요한 전기적, 물리적 세부 사항들을 정의한다. 예를 들어, 핀들의 배치나 전압, 전선의 명세 등이 이 계층에 포함된다. 허브나 리피터가 물리 계층의 장치이다. 기계적 구조와 전기적 특성을 규정한다. 물리 계층에서 수행되는 중요한 일들은 다음과 같다.

물리적인 정보 전달 매개체에 대한 연결의 성립 및 종료. 여러 사용자들 간의 통신 자원을 효율적으로 분배하는 데 관여. 예를 들어, 경쟁 상태의 해소나 흐름 제어 등. 통신 채널을 통해 전송되는 사용자 장치의 디지털 데이터를 이에 상응하는 신호들로 변환, 변조. 이 신호들은 구리선이나 광섬유 선을 통해 전달되는 신호들로, 예를 들어, SCSI가 여기에 속한다 네트워크상에서 데이터 비트를 전송하는 계층으로, 데이터 링크 개체간의 비트 전송을 위한 물리적 연결을 설정, 유지, 해제하기 위한 수단을 제공하며, 물리계층에서 데이터를 교환하는 방식은 회선교환, 메시지 교환, 패킷교환 방식이 있다. 전송 매체는 신호 보내는 방법을 정의한다.


-> 네트워크 통신을 위한 물리적인 표준을 정의.(네트워크 카드들이 사용하는 케이블 종류, 데이터 송수신 속도, 신호의 전기 전압)

 

Physical 계층 역할을 담당하는 장비 --> 허브, 리피터


계층 2: 데이터 링크 계층(Data link layer)


데이터 링크 계층은 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다. 주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져 있다는 뜻이다. 주소 체계는 계층이 없는 단일 구조이다. 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다. 이 외에도 HDLC나 ADCCP 같은 포인트 투 포인트(point-to-point) 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다. 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 이어진 곳에만 연결할 수 있다.


->  네트워크 카드의 물리적인 주소를 관리한다. 네트워크 상에서 각각의 컴퓨터들을 구분하기 위해서 논리적인 주소인 컴퓨터 이름, IP주소를 사용한다. 하지만 최종적으로 데이터가 목적지 컴퓨터로 전달 되기 위해서는 네트워크 카드의 물리적인 주소인 MAC(Media Access Control)주소가 반드시 필요하다. Network 계층에서 전달 받은 데이터를 케이블에 흘려 보낼 데이터 형태인 프레임(Frame)으로 만든다. 프레임은 물리적 네트워크 구성이 Ethernet 인지 Token Ring 인지에 따라서 그 크기와 내용이 결정된다. 프레임의 목적지 주소로 물리적 주소를 사용하는데, 프레임의 목적지 주소는 발신지 컴퓨터와 목적지 컴퓨터가 동일한 네트워크크 세그먼트 상에 존재할 경우에는 목적지 컴퓨터의 MAC주소로 지정, 발신지 컴퓨터와 목적지 컴퓨터가 동일한 네트워크 세그먼트 상에 존재하지 않는 경우에는 해당 세그먼트에 존재하는 리우터의 MAC주소로 지정하여 아래 계층인 물리 계층으로 전달한다. 수신쪽에서는 하위 계층인 물리 계층으로부터 전달 받은 프레임의 목적지 MAC주소가 자신의 MAC주소와 일치하는 경우 해당 프레임의 헤더를 제거한 패킷을 위쪽 계층인 Network 계층으로 전달한다.

 

Network 계층 역할을 담담하는 장비 --> 브릿지, Layer2 Switch

 

Network 계층 역할을 담당하는 Protocol --> SLIP, PPP

계층 3: 네트워크 계층(Network layer)


네트워크 계층은 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다. 네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행한다. 라우터가 이 계층에서 동작하고 이 계층에서 동작하는 스위치도 있다. 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다. 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.

서브네트의 최상위 계층으로 경로를 설정하고, 청구 정보를 관리한다. 개방 시스템들의 사이에서 네트워크 연결을 설정, 유지, 해제하는 기능을 부여하고, 트랜스포트 계층사이에 네트워크 서비스 데이터 유닛(NSDU : Network Service Data Unit)을 교환하는 기능을 제공한다.


-> 논리적인 주소를 담당하고 패킷의 전달 경로를 결정하는 역할 논리적인 주소 --> IP주소, IPX주소, 컴퓨터 이름 Transport 계층에서 만들어진 패킷을 전달 받아 목적지 컴퓨터의 논리적인 주소를 네트워크 계층의 헤더에 추가하는 역할을 한다.


Network 계층 역할을 담당하는 장비 --> Router(라우터)

 

Network 계층 역할을 담당하는 Protocol --> IP, IPX, ARP

계층 4: 전송 계층(Transport layer)


 전송 계층은 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다. 시퀀스 넘버 기반의 오류 제어 방식을 사용한다. 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다. 가장 잘 알려진 전송 계층의 예는 TCP이다.

종단간(end-to-end) 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효율적인 데이터를 전송하며, 기능은 오류검출 및 복구와 흐름제어 등을 수행한다.


-> 사용자가 보낸 데이터가 목적지에 정확하게 도착하도록 관리하는 역할이다. 효율적인 데이터 전송을 위해서 데이터를 전송하기에 적당한 크기의 패킷(Packet)으로 나누어 주는 역할을 한다. 10MByte의 파일을 상대방에게 전송하는 경우에 전송 도중 오류가 발생한다면 10MByte의 파일을 다시 전송해야만 한다. 이런 경우에 10MByte의 파일을 한번에 다 전송하지 않고 1MByte의 크기의 단위로 나누어 전송을 한다면 전송 도중에 오류가 발생하여도 오류가 발생한 해당 부분만 다시 재전송을 하면 되므로 효율적으로 네트워크를 사용할 수 있게 된다. 수신측 컴퓨터의 경우에는 수신된 각각의 패킷들을 원래의 파일로 다시 재결합하는 역학을 한다. 각각의 패킷은 수신측 컴퓨터의 Transport 계층에서 다시 원래의 파일로 재결합 되기 위해서 패킷의 헤더에 패킷 번호 정보를 가지고 있다. 웹 브라우저를 사용하여 그림이 있는 웹 페이지를 검색하는 경우에, 원본 그림 파일의 마지막 패킷까지 제대로 전송받지 못한 경우에는 그림의 위쪽 부분은 표시가 되는데 아래쪽 부분이 나타나지 않는 현상이 나타날 수 있다. 또한 그림의 아래부분이 위에 나타나고 위쪽 부분이 아래에 나타날 경우에는 패킷을 다 전송 받기는 하였지만 순서대로 재결합을 하지 못했을 경우이다.


Transport 계층의 역할을 담당하는 Protocol --> TCP, UDP

계층 5: 세션 계층(Session layer)


세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다. 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.

통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다.


-> 네트워크 상에서 컴퓨터들이 서로 통신을 할 경우에 양쪽 컴퓨터 간에 최초에 연결이 되도록 하고 통신 중에 연결이 끊어지지 않도록 상호간에 연결상태를 유지시켜주는 역할. 특정 목적지 컴퓨터로 파일을 전송하는 경우, 목적지 컴퓨터가 네트워크 상에 존재하는지 아닌지도 확인하지도 않고 바로 파일을 보내는 것이 아니라 목적지 컴퓨터와 파일을 보낼테니 받을 준비가 되었는가를 협의해야 한다. 특정 사이트에 접속할 경우에 해당 사이트에 최초에 연결을 시도하면서 해당 사이트들이 사용자의 접속을 제한 하지는 않는지 등을 파악하고 필요한 경우에 접속을 위한 협의 과정을 거쳐야 한다.

계층 6: 표현 계층(Presentation layer)


표현 계층은 코드간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다. MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다. 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것이 표현 계층의 몫이다.


-> 네트워크로 보내질 데이터의 형식(Format)을 결정 보낸 쪽과 받는 쪽이 정확한 데이터 형식을 사용할 수 있도록 해주는 역할(문자 데이터 형식: ASCII, EBCDIC, 유니코드 등.. 멀티미디어 데이터 형식: GIF, JPEG, MIDI, MPEG 등.. ) 또한 네트워크로 전송될 데이터를 암호화하고 해독하는 역할도 담당한다. 웹 브라우저나 메일 프로그램을 사용하여 웹 페이지나 메일의 내용을 확인할 경우 영어로된 웹 페이지는 영어로 보여주고, 한글로된 웹페이지는 한글로 자동으로 보여주는 기능이 Presentation 계층의 역할이다. 웹 브라우저나 메일 프로그램에서 내용을 확인할 때 알 수 없는 문자가 나타난다면 Presentation 계층의 역할에 문제가 발생한 것이다.

 

             송신 컴퓨터  -------------------------->  수신 컴퓨터

  데이터 형식: 한글/영어  -------------------------->  한글/영어 문자 표시

  데이터 형식: MP3        -------------------------->  MP3 음악 재생

  데이터 형식: GIF/JPEG   -------------------------->  GIF/JPEG 그래픽 표시

  데이터 형식: 암호화     -------------------------->  암호해독

계층 7: 응용 계층(Application layer)


응용 계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다. 응용 서비스의 예로, 가상 터미널(예를 들어, 텔넷), "Job transfer and Manipulation protocol" (JTM, 표준 ISO/IEC 8832) 등이 있다.


-> 사용자 인터페이스의 역할을 담당하고 있는 계층이다. 즉, 사용자들이 이용하는 네트워크 응용 프로그램이라고 생각하면 된다. 메일을 보낼려면 메일 프로그램, 인터넷 검색을 하려면 웹 브라우저를 사용하듯, 이와 같이 사용자 입장에서 네트워크를 이용할수 있게 해주는 역할을 담당한다. (FTP, Telnet, SMTP, DNS, DHCP)