본문 바로가기

Windows System/Network

OSI




     OSI[오에스아이]는 통신 네트웍으로 구성된 컴퓨터가 어떻게 데이터를 전송할 것인가에 대한 표준규약또는 참조 모델이다. 이것의 목적은 통신 제품을 만들 때 다른 제품과 모순됨이 없이 통신하도록 유도하는 것이다. 이 참조 모델은 통신의 종단에서 이루어지는 기능을 7 계층으로 정의했다. OSI가 잘 정의된 계층마다 관련된 기능을 따르도록 강하게 고수하지 않아도, 대부분의 제품들은 OSI 모델에 관련된 정의들을 따르기 위해 노력한다. OSI 모델은 또한 모든 사람이 동일한 관점에서 통신에 대해 교육하고, 논의하는 유일한 참조 모델로서 중요한 가치가 있다.



        * 1 계층 : 물리 계층 ... 이 계층은 전기 기계적으로 체계를 갖춘 네트웍을 통하여 비트열을 나른다. 이 계층은 전송 매체를 통해 데이터를 주고받는 하드웨어 수단을 제공한다. 



 




 





 ■ 계층별 특징

      1. 4 Transport Layer


              i_ 상위 계층에서 생성된 데이터를 전송할 수 있도록 TCP/UDP 헤더를 삽입하여 캡슐화 시킴


                     a ) 네트워크가 아닌 호스트 내에 구동된 프로세스 사이의 연결 확립 (End-to-End)

                             - 트랜스포트 계층은 정보전달을 두 호스트(Host-to-Host)간 보다는 주로 프로세스간
                               (Process-to-Process)의 통신으로 바꾸어 준다.
                             - 이는 양 호스트의 종단간 응용 프로세스 상호 간의 통신을 지원하게 된다.


                     b ) 두 종단 프로세스 간에 성립된 세션 제어

                             - Session을 갖고 있는 두 이용자 사이의 전송을 위한 종단간 제어


                     c ) 신뢰적 전송

 

 ■  OSI (Open Systems Interconnection) ; 개방형 시스템간 상호 접속

주요 컴퓨터와 통신 회사 대표자들에 의해 1983년부터 개발이 시작된 OSI는 본래 인터페이스 사이의 상세 규정을 시도했다. 그러나 위원회는 다른 것들 간에 상세 인터페이스 규정을 개발할 수 있는 공통의 참조 모델을 확립하기로 결정하였으며, 그것은 표준이 될 수 있었다. OSI는 ISO에 의해서 국제 표준으로 채택되었다. 현재, 이것은 ITU의 권고 X.200 이다.

OSI의 주된 개념은 통신 네트웍으로 구성된 두개의 종단 이용자 사이에서, 통신 처리를 각 계층이 가지고 있는 특별한 기능을 가지고 계층별로 나눌 수 있도록 하는 것이다. 각 통신 이용자는 7 계층의 기능을 갖는 컴퓨터를 이용한다. 이용자들 사이에 메시지가 주어지면, 컴퓨터에서 한 계층씩 아래로 각 층을 통과하여 데이터가 흐르게되고, 다른 쪽에서는 메시지가 도착할 때 메시지를 받는 컴퓨터는 한 계층씩 위로 통과하여 이용자에게 전달 될 것이다.

실제로 이러한 7 계
층의 기능을 제공하는 프로그램이나 장치는 컴퓨터 운영체계, 웹 브라우저와 같은 응용프로그램, TCP/IP 또는 다른 트랜스포트 네트웍 프로토콜과 이용자의 컴퓨터에 구성된 회선을 사용할 수 있는 소프트웨어하드웨어가 함께 결합된다.


OSI는 7 계층으로 통신을 나누는데, 이 계층들은 다시 2개의 그룹으로 나뉜다. 상위 4 계층은 이용자가 메시지를 주고 받는데 사용된다. 네트웍 계층까지의 아래의 3 계층은 메시지가 호스트를 통과 할 수 있도록 한다. 컴퓨터에 보내진 데이터는 위 계층으로 전달된다. 다른 컴퓨터에 보내진 메시지는 위 계층으로 전달되지 않고 다른 호스트로 전달된다.

 

  7 계층을 하나하나 살펴보면 다음과 같다.


       * 7 계층 : 응용계층 ... 이 계층에서는 통신상대, 서비스 품질, 사용자 인증과 비밀을 고려하고, 데이터 구문의 제약을 정한다 (이 계층은 응용 프로그램이 응용 계층의 기능을 수행하지만 응용프로그램 자체는 아니다).

        * 6 계층 : 표현 계층 ... 이 계층은 운영체계의 한 부분으로 입력 또는 출력되는 데이터를 하나의 표현 형태에서 다른 표현 형태로 변환하는 것이다 (예를 들면 텍스트로 도착한 데이터를 팝업 윈도우 형태로 변환하는 것이다). 표현 계층을 문법 계층이라고 하기도 한다.

        * 5 계층 : 셰션 계층 ... 이 계층에서는 종단 호스트 프로그램 사이에서 메시지를 주고받기 위한 설정을 하고, 데이터를 받는 동기를 제어하는 역할을 한다. 이 계층은 통신 세션을 구성하는 역할을 한다.

        * 4 계층 : 트랜스포트 계층 ... 이 계층은 종단간 제어와 에러를 관리한다. 즉, 신뢰성 있는 데이터 전송을 보장한다.



        * 3 계층 : 네트웍 계층 ... 이 계층은 데이터 경로를 제어한다 (패킷이 정확한 수신자에게 보내지도록 올바른 경로는 제어하여 수신 쪽에서 받을 수 있게 한다). 네트웍 계층은 경로를 설정하고 다른 쪽으로 전송한다.



        * 2 계층 : 데이터링크 계층 ... 이 계층은 물리적 레벨의 에러 제어와 동기를 제공하고, 5를 초과하는 1의 스트링으로 비트화한다. 이 계층은 전송 확인과 관리를 담당한다.

                             - 동일 또는 이기종 시스템간에 어떤 망(공중망 : PSTN, 패킷공중데이터망 : PSDN등)이 어떻게 연결되었든 간에 관계없이 정보를 틀림없이 상대 단말기에 전달


                     d ) 투명한 전송

                            - 바로 상위 또는 하위 계층에서 사용하는 제어방법 및 그 내용에 관계없이 정보가 세션 -                              트랜스포트 - 망 계층 간에 내용이 바뀜 없이 투명(Transparent)하게 전송
                            - 즉, 경로선택이나 중계기능에 관여하지 않고 양단간 (End-to-End) 데이터의 투명한 양
                              방향 전송
기능을 제공


                     e ) 논리회선(세션, 가상회선) 및 다중화/역다중화 지원

                            - 동시에 여러 개의 논리적 연결을 가능하게 하는 다중화(Multiplexing)


                     f ) 지연(Delay)에 따른 왜곡 및 대역폭 부족에 대한 보상 등


              ii_ PDU : Segment
                      - DATA에 TCP/UDP가 삽입된 것


              iii_ Protocol : TCP,UDP


              iv_ Address :
Port (16bit - 0~65535) 
                      - TCP를 사용하는 Port : HTTP(80), Telnet(23), SSH(22), FTP(20/21), SMTP(25), POP(110)
                      - UDP를 사용하는 Port : DNS(53), TFTP(69), NetBIOS Name Service(137),
                                                        NetBIOS Datagram Service(138),
SNMP(161)


              


              v_ 장비 : L4 Switch

                  
                         ▶ 
TCP
                         - 신뢰성 있는 데이터를 전송
                         - 연결지향적 프로토콜
                                  ◐ 연결 설정, 데이터를 전송, 연결 종료하는 세 단계
                                  ◐ 연결을 설정 : 3단계 메시지 교환 (3 Way Handshake) 

                       
                    
             ◐ 최소한 1.5xRTT(Round Trip Time : 두 컴퓨터 사이에서 데이터 전송의 왕복시간)필요
             ◐
연결 해제 과정 : 상대 측이 연결을 종료할 때까지 기다린 후에 자신도 종료하는 대기 과정
             ◐
대기 시간 : 전송한 ACK 세그먼트가 버려지기 이전에 네트워크에 남아 있을 수 있는
                                최대 시간을 나타내는 MSL (Maximum Segment Lifetime)의 두배




 

                     ◐ Source Port(16bit) : 송신 응용 프로그램의 주소.(port 번호)

                     ◐
Destination Port(16bit) : 수신 응용 프로그램의 주소. (port 번호)

                     ◐
Sequence Number(32bit) : SYN Flag가 1인 경우 초기 순서 번호를 나타낸다.
                                                                 SYN이 0인 경우는 세그먼트의 순서 번호를 나타낸다.

                     ◐
Ack Number(32bit) : 수신자에 의해 예상되는 다음 바이트의 순서 번호를 나타낸다.
                                                    TCP 통신은 누적된다.

                     ◐
Offset : TCP Header의 32비트 워드 번호이다.
                                   TCP Header의 시작부터 데이터 이전까지의 길이.


                     ◐ Flag(Code) : U A P R S F

                       ◁
URG : 긴급 포인터(Urgent Pointer)가 있음을 표시 - 수신자가 이미 흐르고 있는 옥텟을
                                  처리하는 것을 기다리지 않고 대역을 벗어나 데이터를 보내기 위해 사용된다.


                        ◁ ACK : 확인 응답번호(Acknowledgment Number)가 기술되어 있음을 표시


                        ◁ PSH : 데이터를 가능한 빨리 응용 계층으로 보내야 함을 표시 - TCP가 즉시 이 메시지를
                                   상위계층 프로세스에 전달 할 수 있게 해준다


                        ◁ RST : 연결을 재설정 하기를 원함을 표시 - 복구되지 않는 오류로 인해 가상회로를 리셋
                                    하기 위해 사용된다.


                        ◁ SYN : 연결을 초기화 하기 위해 순서번호(Sequence Number)를 동기화 - 가상회로 연결
                                    의 시작을 나타낸다.


                                          → SYN = 1 ACK = 0 연결 패킷 (연결 요청)
                                          →
SYN = 1 ACK = 1 연결 수신 통지 (연결 요청 응답)
                                          →
SYN = 0 ACK = 1 데이터 또는 ACK 패킷

                                               
                        ◁
FIN : 송신 측이 데이터 전송을 종료함


                    ◐ Window : 수신 측이 받을 수 있는 데이터 사이즈를 수신 측에서 송신 측으로 전송하는 값.


                    ◐ Checksum : TCP Header 데이터를 포함한 세그먼트 전체에 대하여 계산한 값이다. 
                                       에러체크에 사용.


                    ◐ Urgent Pointer : 긴급히 처리해야 할 필요가 있는 데이터의 마지막 바이트의 위치를 
                                               나타낸다.


                    ◐ Option : 연결이 구성되는 동안 협상할 최대 세그먼트 크기 (MSS)옵션을 정의한다.

                 

                   
                    ▶ UDP

                       -
IP 네트워크에서 응용 프로그램들은 서로 통신하기 위해서 TCP나 UDP 표준 전송
                         프로토콜을 사용한다.
                         그 중에서 UDP는 작고 신뢰성이 없지만 오버헤드가 적어서 빠른 전송 서비스를 제공하는 
                         User Datagram Protocol이다.






                   ◐ Source Port : 송신 측 호스트의 포트번호


                   ◐ Destination Port : 수신 측 호스트의 포트번호


                   ◐ Length : UDP 패킷의 옥텟 단위 길이, 이 길이는 UDP Header와 그 데이터를 포함한다.
                                  길이 필드의 최소 값은 8이며 이는 0크기의 데이터 필드를 나타낸다.


                   ◐ UDP Checksum : UDP Header 데이터를 포함한 세그먼트 전체에 대하여 계산한 값,
                                             에러 체크에 사용.


      


     2. Network Layer


              i_ 상위 계층에서 생성된 데이터를 전송할 수 있도록 IP Header를 삽입하여 캡슐화 실시


                    a ) 경로제어 (라우팅)

                               - 단말기 혹은 컴퓨터가 어떤 망에 접속되어 있을 때 송신하고자 하는 정보가
                                 망을 통해서 어떻게 상대
                                 방 수신 측까지 전달되는가를 제어하는 일을 담당. 즉, 발신에서 착신까지의 패킷의
                                 경로를 제어
                               -
하나 이상의 복수 통신망을 통한 중계를 하며, 개방시스템간의 데이터를 전송.


                     b ) 투명성
                               -
4 Layer가 경로선택과 중계 등 망계층 고유의 기능에 대하여 의식하지 않도록
                                 투명하게 하는 역할.


                     c ) 논리적 주소체계 부여
                               -
라우팅과 관련된 주소의 지정 등 주소체계 정립

                     d )
연결지향성 및 비연결성의 서비스 제공
                               -
망계층은 상위의 트랜스포트 계층에게 연결지향성 및 비연결성 서비스를 모두를
                                 제공한다.


              ii_ PDU : Packet


              iii_ Address : IP Address (32bit)


              iv_Protocol : IP, ICMP,IGMP,ARP,RARP 

              v_
출발지에서 목적지 가지 최적 경로를 선출하여 데이터를 전송하는 일을 담당

              vi_
장비 : Router




                                                                                 
                                                                         IP Header


    


                  ▶  Version : 4bit, IP Protocol Version 정보 (v4, v6)

                  ▶ 
Header Length : 4bit, IP Header의 길이를 32bit 단위로 나타낸다.
                                             (Default 5) 5*32 = 160bit=20Byte

                  ▶ 
Type-of-Service Flags : 8bit, Internet의 Application, host,
                                                     그리고 Router에 우선순위 서비스를 제공한다. 이 필드를 설정하여
                                                     Datagram의 처리 순서를 빠르게 할 수 있다.

                  ▶ 
Total Packet Length : 16bit, 헤더와 몸체를 포함한 전체 IP Packet의 길이를 
                                                     바이트 단위로 나타낸다.

                  ▶ 
Fragment Identifier : 16bit, 분열이 발생한 경우 조각을 다시 결합하는 일을 돕기 위한
                                                   조각들이 속한 원래의 Datagram을 나타낸다.


                  ▶  Fragmentation Flags : 3bit, 현재의 분열상태의 단서 제공 3bit중 마지막 2bit만 사용
                                        (첫번째 bit는 예비용 두번째 bit는 분열 허용여부(0 : 허부, 1 : 허용안 됨) 세번째
                                        bit는 현재의 조각이 마지막인지 여부 표시 마지막인 경우 0, 더 있으면 1로 표기)


                   ▶  Fragmentation Offset : 13bit, 8byte의 오프셋으로 조각에 저장된 원래 Datagram의
                                                       바이트 범위를 나타낸다.


                   ▶  Time To Live : 8bit, Datagram이 전달 불가능한 것으로 판단되어 소멸되기 이전에
                                           Datagram이 이동할 수 있는단계의 수를 나타낸다.


                   ▶  Protocol Identifier : 8bit, IP Datagram의 몸체에 저장된 상위 계층 프로토콜을 나타낸다.


                   ▶  Header Checksum : 16bit, IP Header Checksum을 저장한다.


                   ▶  Source IP Address : 32bit, Datagram을 전송한 원래 컴퓨터의 32bit의 IP Address이다.


                   ▶  Destination IP Address : 32bit, Datagram 수신할 최종 목적지의 32bit IP Address이다.


                   ▶  Option : 가변, IP가 Type-of-Service를 통해 우선순위 서비스를 제공하는 것처럼
                                   Option 필드를 사용하여 특별한 처리 옵션을 추가로 정의할 수 있다.


                   ▶  Padding : 가변, IP Header의 길이는 32bit 단위여야 한다. Header에 옵션이 추가되면
                                    Header 는 32bit로 나눠 떨어지도록 부족분이 채워져야 한다.


    
 

     3. Data Link Layer


             i_ 잡음이 있는 인접한 노드 간의 물리적인 회선을 3 Layer가 사용할 수 있도록 전송 에러가 없는 통신
                채널로 변환시 키는 것

                   
                    1 ) 프레이밍 (Framing)
                            -
Data를 Frame으로 그룹화 하여 전송. 즉, Data의 Framing을 물리계층에 의해서 제공되는
                              Bit Pipe를 패킷화된 Link로 변환하게 한다. 이는 전송할 Data를 전송 단위로서의 패킷
                              (또는 프레임)으로 나누어 그룹화 하는 역할을 의미

                   
                     2 ) 흐름제어 (Flow Control) 
                            -
보내는 측과 받는 측간의 속도 차를 보상하는데 필수적인 흐름제어


                     3 ) 에러제어 (Error Control)
                            - 
에러보정을 위한 에러제어 등의 기능을 제공, 물리 전송 매체 특징상 오류와 잡음이
                              랜덤하게 발생할 확률이 높으므로 전송 오류를 검출하고 이것을 수정

                            -  비동기 통신에서는 단지 에러 검출 기능 만을 제공하게 되나, 동기 통신에서는 에러검출
                               및 수정 기능 모두를 제공

                            -  정확하게 수신되지 않은 패킷들을 재전송하며, 이는 송신 측에서 타이머와 ACK 신호에
                               의해 전송에러 를 알수 있다


                     4 ) 순서제어 (Sequence Control) 
                            - 
패킷이나 ACK 신호를 잘못 혼동하는 것을 피하기 위해서는 패킷과 ACK 신호에는
                               Sequence Number (일련번호)가 부여되어야만 한다.


                    5 ) 링크관리
                            - 
네트워크 NTT 간에 Data Link의 설정, 유지, 단락 및 Data 전송을 제어


                    6) 매체접근 제어
                            - 
다양한 매치 및 회선 형태의 수용 등


             

            ii_ PDU : Frame


            iii_ Address : MAC (48비트)


            iv_ LLC (Logical Link Control)
                 1 )
네트워크 로컬 장비간 논리적 연결 지원
                 2 )
IEEE 802.2 LLC Protocol


             v_ MAC (Media Access Control)
                    -  
네트워크 매체에 접근 통제
                    -  
매체 접근 제어 CSMA/CD




 

             vi_ Protocol : HDLC, PPP, FDDI, ATM, Frame Relay, 이더넷


             vii_ 장비 : Bridge, Switch




 

 

Ehternet 2 (DIX2) Frame 구조
                    
                    ◐  Preamble : 송신측과 수신측의 비트 동기화 및 Frame 시작을 알림
                    ◐  Destination Address : 목적지 2계층 주소(MAC Address)
                    ◐  Source Address : 출발지 2계층 주소 (MAC Address)
                    ◐  Type : 상위 계층의 프로토콜을 정의
                    ◐  Data : 상위 계층에서 받은 캡슐화된 데이터
                    ◐  FCS(CRC) : 프레임의 마지막 필드로 오류 검출 정보를 포함(CRC-32)





            IEEE 802.3 Frame 구조

                     ◐  Preamble : 송신 측과 수신 측의 비트 동기화를 위해 사용
                     ◐  SFD(Start Frame Delimiter) : 10101011값을 가지면 프레임의 시작을 알림
                     ◐  Destination Address : 목적지 2계층 주소 (MAC Address)
                     ◐  Source Address : 출발지 2계층 주소(MAC Address)
                     ◐  Length : Data의 길이를 표시
                     ◐  Data : 상위 계층에서 받은 캡슐화된 데이터
                     ◐  FCS(CRC) : 프레임의 마지막 필드로 오류 검출 정보를 포함 (CRC-32)





            IEEE 802.2(LLC : Logical Link Control)


                      ◐  DSAP (Destination Service Access Point) : 목적지의 3계층 프로토콜을 나타냄
                      ◐  SSAP (Source Service Access Point) : 출발지의 3계층 프로토콜을 나타냄
                      ◐  Control : 프레임의 종류를 표시하며 대부분 0x03값을 가진다




     1. Physical Layer



               i_  단말기기와 전송매체 사이의 인터페이스를 정의하고, 데이터 링크 계층 NTT 간의 비트 전송을
                   위한 기계적,
전기적, 기능적, 절차적인 수단을 제공하는 계

               
               ii_ 특징

                     1 ) 물리계층에서 정의 되는 기능 : 기계적, 전기적, 기능적, 절차적 기능등
                              - 즉, 전송속도, 커넥터 핀 수, 신호의 레벨, 전송 매체, 신호 동기 등을 규정

                     2 ) 물리적 회선 관리
                              - DTE와 DCE 간의 물리적 회선에 대한 작동, 유지, 작동의 중지 등을 규정한다.

              
                     3 ) 대표적인 표준으로는 EIA RS-232C, V.24, X.21, V.35

               
               iii_ 케이블, 무선 매체