3 OSI 7계층과 네트워킹
학습목표 내용 네트워크 계층 구조의 필요성을 이해한다. 네트워크 계층 구조인 OSI 7계층을 이해한다. 라우팅과 스위칭을 이해한다. 패킷에 대한 분석 능력을 키운다. 내용 네트워크 구조에 대한 이해 물리 계층 데이터 링크 계층 네트워크 계층 전송 계층 계층별 패킷 분석
네트워크 계층 구조 1970년대 중앙 집중식 네트워크에서 분산형 네트워크로 변하면서 중소형 네트워크 발달 IBM과 DEC가 대기업 네트워크의 대부분 차지, 이들은 SNA, DECnet이라는 각각의 네트워크 구조 모델 사용 개인 컴퓨터가 널리 보급되면서 중소형 네트워크의 필요성 제기. 업체마다 자사 제품끼리만 통신이 가능하게 만들어 이기종 통신에 문제 발생 ISO는 여러 업체가 만든 시스템을 상호 연동 가능하게 하는 표준 네트워크 모델 제정의 필요성 요구를 수용해 1984년 OSI 네트워크 모델 발표
OSI 7계층 기능 물리 계층(1계층) 데이터 링크 계층(2계층) 네트워크 계층(3계층) 전송 계층(4계층) 사용자나 응용 프로그램 사이에 데이터 교환을 가능하게 함 데이터 링크 계층(2계층) 응용 프로그램 계층 개체 간의 정보를 표현하는 구문을 하나의 통일된 형식으로 표현 네트워크 계층(3계층) 프로세스 간의 대화 연결 확립/관리/해제하려고 체크포인트, 재시작, 차단 서비스 수행 전송 계층(4계층) 점대점 연결에 신뢰성 있고 투명한 데이터 전송 제공. 이를 위해 양단간에 오류 제어, 통 신량 제어, 다중화 제공 세션 계층(5계층) 네트워크를 통한 데이터 패킷 전송 담당. 경로 제어(routing)와 통신량 제어 등을 수행 표현 계층(6계층) 물리적인 링크를 통해 신뢰성 있는 정보 제공. 즉, 동기화, 오류 제어, 흐름 제어 등을 통 해 프레임 전송 응용 프로그램 계층(7계층) 기계적, 전기적, 기능적, 절차적 특성을 정의하여 구조화되지 않은 비트 스트림을 물리 적 매체를 통해 전송
프로토콜 계층화 복잡하고 다양한 유형의 통신 기능을 하나의 큰 프로토콜로 정의하기 거의 불가능하여 프로토콜 계층화 기능별로 계층을 구분하여 각 기능에 맞게 표준화 진행 네트워크의 추가, 변경, 유지 보수 등의 문제 해결 편리
물리 계층 1계층으로, 시스템 간의 연결선(랜 케이블, 동축 케이블, 전화선, 전자 파장 전달 공간 등) 실제 장치를 연결하는 데 필요한 전기적, 물리적 세부 사항 정의 물리 계층 장치 : 허브나 리피터 ANSI/EIA 표준 568의 데이터 속도에 따른 1계층 케이블 구분(표 3-1)
물리 계층 케이블의 구분(표 3-2) 커넥터에도 여러 표준이 있음 전화선의 연결 커넥터를 RJ(Registered Jack)-11이라고 부르고, 랜 케이블의 연결 커넥터를 RJ-45라고 부름 [그림 3-3] RJ-11 [그림 3-4] RJ-45
물리 계층 관련 장비 리피터(Repeater) 더미 허브(Hub) 네트워크 연장 장비 거리가 일정 이상이 되면 신호 세기가 약해져서 0과 1의 디지털 신호를 분석하기 어려 워진다는 점을 해결하기 위해 리피터 사용 불분명해진 신호 세기를 다시 증가시키는 역할을 함 더미 허브(Hub) 허브는 요즘에 쓰이는 스위치의 옛날 형태 흔히 최근의 스위치를 스위칭 허브라고 부르고, 이전 허브를 더미 허브라 부름 더미 허브는 네트워크 구조 관점에서 버스 구조를 하고 있다고 볼 수 있음 [그림 3-5] 리피터
데이터 링크 계층 랜 카드나 네트워크 장비의 하드웨어 주소만으로 통신하는 계층 MAC(Media Access Control) 주소는 네트워크 카드마다 붙는 고유 이름. 윈도우 명령 창에서 ipconfig /all 명령으로 확인 총 12개의 16진수로 구성. 앞쪽 6개는 네트워크 카드를 만든 회사를 나타내는 OUI(Organizational Unique Identifier) → 어느 회사에서 만든 제품인지 알 수 있음 뒤쪽 6개는 호스트 식별자(Host Identifier)로 각 회사에서 임의로 붙이는 일종의 시리 얼 → OUI가 같은 회사도 없고, 한 회사에서 시리얼이 같은 네트워크 카드를 만들지 않 기 때문에, 같은 MAC 주소는 존재하지 않음
데이터 링크 계층 X.25 프레임 릴레이(Frame Relay) ATM(Asynchronous Transfer Mode) ITU-T(구 CCITT)에 의해 1980년경부터 규격화된 통신 규약 단말장치(DTE)와 회선종단장치(DCE) 간의 상호 접속에 대해서만 규정하며 DCE 간의 네트워크 내부 접속에 대한 사항은 규정하지 않음 단말장치와 회선종단장치 간의 통신 절차를 규정한 계층화된 프로토콜 프레임 릴레이(Frame Relay) 불필요한 전송 오류 제어나 흐름 제어 등 복잡한 기능을 최소화하고, 망 종단 장치에서 처리하도록 함으로써 고속 전송을 실현하는 고속 데이터 전송 기술 X.25 패킷 교환망의 10배까지 고속 데이터 전송이 가능 ATM(Asynchronous Transfer Mode) 고속 데이터를 53Byte 셀로 처리하는 VLSI 기술로, 실시간 영상 전송 같은 고속 통신에 사용 ATM 망은 스타형의 성격
데이터 링크 계층 관련 장비 브리지(Bridge) 스위치(Switch) 초기의 랜과 랜을 연결하는 네트워크 장치 데이터 링크 계층에서 통신 선로를 따라 한 네트워크에서 그 다음 네트워크로 데이터 프 레임을 복사하는 역할 브리지에 프레임이 들어오면 MAC 주소를 확인해 목적지 MAC 주소가 프레임이 들어온 인터페이스에 있으면 해당 패킷을 막고, 프레임이 들어온 인터페이스가 아닌 다른 인터 페이스 쪽에 있으면 전달 스위치(Switch) 기본적으로 L2(Layer 2), 즉 데이터 링크 계층에서 작동하는 스위치 L3, L4 스위치는 L2 스위치에 상위 계층의 네트워킹 기능을 추가한 것 L2 스위치는 스타형 네트워크로 더미 허브가 연결된 시스템이 늘어날수록 패킷 간 충돌 때문에 매우 낮은 속도로 동작하는 문제점을 해결하는 획기적인 방안 [그림 3-9] 브리지 [그림 3-10] 스위치
스위칭 스위칭 방식 패킷 전송 방식에 따라 컷스루(cut-through) 방식, 저장 후 전송(store & forward) 방식과 인 텔리전트 스위칭(intelligent switching) 방식으로 구분 제공 경로의 대역폭에 따라 전이중(full-duplex)과 반이중(half-duplex) 방식으로 구분 컷스루 방식 수신한 프레임의 목적지 주소를 확인하고 목적지 주소의 포트로 프레임을 즉시 전송 지연 시간이 최소화되나 수신한 패킷에 오류가 발생할 때는 목적지 장치에서 폐기 저장 후 전송 방식 완전한 프레임을 수신하여 버퍼에 보관했다가 전 프레임을 수신한 후 CRC 등 오류를 확인하고 정상 프레임을 목적지 포트로 전송 패킷 길이에 비례해 전송 지연이 발생하지만 브리지나 라우터보다 훨씬 신속하게 이루어짐 인텔리전트 스위칭 방식 보통 컷스루 모드로 작동하다가 오류가 발생하면 저장 후 전송 모드로 자동 전환하여 오류 프레 임을 전송하는 것을 중지 오류율이 0이 되면 자동으로 다시 컷스루 방식으로 전환 전이중 방식 송신 포트와 수신 포트를 분리해 반이중 방식보다 성능 두 배. 충돌이 없으므로 전송 거리 제한 연 장 가능 공유 방식의 이더넷은 반이중 방식만 지원하고 기술적으로는 스위치에서만 전이중 방식 지원
스위칭 스위치 테이블 서버가 스위치에 연결되어 있을 때 스위치의 메모리 정보 클라이언트의 랜 케이블을 스위치의 3번 포트 꽂음 스위치의 메모리에 포트별로 MAC 주소가 매칭된 테이블이 존재하고, 이것이 갱신됨
네트워크 계층 랜을 벗어난 통신을 하기 위해 네트워크 계층에서 IP 주소 사용 라우터 네트워크 계층의 대표 장비 게이트웨이라고도 하는데, 게이트웨이는 원래 서로 다른 프로토콜을 사용하는 네트워크 를 연결해주는 장비 게이트웨이처럼 논리적으로 분리된 둘 이상의 네트워크를 연결하는 역할과 반대로 로컬 네트워크에서 브로드캐스트를 차단하여 네트워크를 분리하는 역할 수행 가장 중요한 기능은 패킷 교환망에서 패킷의 최적 경로를 찾기 위한 라우팅 테이블을 구 성하고, 이 라우팅 테이블에 따라 패킷을 목적지까지 가장 빠르게 보내는 길잡이 역할 [그림 3-11] 소형/대형 라우터
라우팅 네트워크 계층 통신을 하는 모든 장치는 라우팅 테이블을 가지고 있음 PC의 라우팅 테이블 예. route PRINT 명령 ➊ 목적지 0.0.0.0은 라우팅 테이블에 목적지로 따로 명시되지 않은 모든 목적지 주소. 라 우팅 테이블에서 직접 구체적으로 지정한 주소 외의 모든 목적지 주소는 192.168.0.4 인터페이스를 통해서 게이트웨이 192.168.0.1로 보내라 ➋ 목적지 주소가 127로 시작하는 모든 패킷에 대해 루프백 주소인 127.0.0.1로 보내라 ➌ 로컬 네트워크(LAN)에 있는 호스트므로 192.168.0.1로 보내지 않고, LAN에서 상대방 을 찾으라
라우팅 tracert 명령을 사용해 127로 시작하는 경로로 ICMP 패킷 전송 두 경우 모두 127.0.0.1로 패킷을 보냄
라우팅 정적 라우팅 관리자의 권한으로 특정 경로를 통해서만 패킷이 지날 수 있도록 설정한 것 경로 설정이 실시간으로 이루어지지 않기 때문에 초기에 관리자가 다양한 라우팅 정보 를 분석하여 최적의 경로 설정이 가능 라우팅 알고리즘을 통한 경로 설정이 이루어지지 않기 때문에 라우터의 직접적인 처리 부하가 감소 네트워크 환경 변화에 능동적인 대처가 어려움 네트워크 환경 변화 시 관리자가 새로운 라우팅 정보를 통해 경로를 재산출하여 각 라우 터에 제공해야 함 비교적 환경 변화가 적은 형태의 네트워크에 적합 [그림 3-15] 정적 라우팅
라우팅 동적 라우팅 라우터가 네트워크 연결 상태를 스스로 파악하여 최적의 경로를 선택해 전송하는 방식 경로 설정이 실시간으로 이루어지기 때문에 네트워크 환경 변화에 능동적인 대처 가능 라우팅 알고리즘을 통해 자동으로 경로 설정이 이루어지기 때문에 관리 쉬움 주기적인 라우팅 정보 송수신으로 인한 대역폭 낭비 초래 네트워크 환경 변화 시 라우터에 의한 경로 재설정으로 라우터의 처리 부하가 증가하고 지연 발생 수시로 환경이 변하는 형태의 네트워크에 적합 [그림 3-16] 동적 라우팅
라우팅 정적/동적 라우팅 비교(표 3-3)
전송 계층 대표 프로토콜은 TCP TCP가 가진 주소를 포트(port)라 함 MAC 주소가 네트워크 카드의 고유 식별자고 IP가 시스템의 논리적인 주소라면, 포트는 시스템에 도착한 후 패킷이 찾아갈 응용 프로그램과 통하는 통로 번호 포트는 0~65535(216)번까지 존재하며, IP나 MAC 주소처럼 출발지와 목적지에 응용 프 로그램별로 포트 번호를 가지고 통신
전송 계층 주요 포트와 서비스 0~1,023번(1,024개)을 잘 알려진 포트(Well Known Port)라고 부름(표 3-4) 보통 0번 포트는 사용하지 않으며, 1,023번 포트까지는 대부분 고유의 사용 용도가 있음
전송 계층 패킷 구조와 예 출발지 포트는 운영체제나 응용 프로그램마다 조금씩 다르나 보통 1,025번~65,535번 중 사용하지 않는 임의의 포트를 응용 프로그램별로 할당하여 사용 클라이언트가 인터넷에 존재하는 웹 서버에 접속한다고 가정하면, 웹 서버의 서비스 포 트는 보통 80번 출발지 포트는 시스템에서 임의로 정해져 알 수가 없으나 대략 3000번 대의 임의 포트 가 할당
실습 3-1 Wireshark 설치하고 실행하기 Wireshark 실행 : Wireshark의 [Capture]-[Interface] 메뉴를 선택한 후 패킷 캡처가 가능한 네트워크 선택 인터넷에 연결된 클라이언트 시스템(윈도우 XP) 실습환경 1 2
실습 3-1 Wireshark 설치하고 실행하기 패킷 캡처가 시작되며, 다음과 비슷한 결과를 확인 가능 ➊ ➋ ➌ ➊ 해당 인터페이스를 통해 캡처된 패킷 목록 ➋ 위의 ➊ 목록에서 패킷을 하나 선택하여 각 계층별 패킷의 정보 ➌ 패킷 전체에 대한 내용을 HEX와 ASCII 형식으로 보여줌 패킷 스니핑 중지
실습 3-1 Wireshark 설치하고 실행하기 Wireshark에서 특정 패킷만 캡쳐하기 위한 옵션 : [Capture]-[Capture Filters] 메뉴 선택
실습 3-2 데이터 링크 계층 패킷 분석하기 실습환경 • 스위치 또는 허브에 연결된 클라이언트(윈도우 XP)와 서버 시스템(윈도우 서버 2003, IIS 설치) • 필요 프로그램 : Wireshark(서버와 클라이언트에 각각 설치) 실습환경
실습 3-2 데이터 링크 계층 패킷 분석하기 2계층에서의 OSI 계층의 패킷 흐름 이해 1 ➊단계 전 : 패킷 송신 컴퓨터는 ARP를 통해 패킷 수신 컴퓨터의 MAC 주소를 확인 ➊단계 : 패킷의 목적지 MAC 주소를 패킷 수신 컴퓨터의 MAC 주소로 적어 스위치로 보냄 ➋단계 : 스위치에서는 2번 포트로 수신된 패킷의 목적지 MAC 주소가 3번 포트와 연결된 시스템이라 는 사실을 메모리에서 확인한 뒤, 패킷을 3번 포트로 흘려보냄 ➌단계 : 패킷이 패킷 수신 시스템으로 흘러감 1
실습 3-2 데이터 링크 계층 패킷 분석하기 패킷 캡쳐 준비: 서버와 클라이언트에서 불필요한 패킷 생성 방지([제어판]-[네트워크 연결] 선택하여 각 네트워크 카드의 속성에서‘인터넷 프로토콜(TCP/IP)’만 활성화 설정) 2
실습 3-2 데이터 링크 계층 패킷 분석하기 패킷 캡쳐 : 서버와 클라이언트의 Wireshark를 동작 → 클라이언트의 랜선을 스위치에 연결 → 웹 브라우저로 서버의 IIS에 접속 → 클라이언트로 IIS 서버에 접속하는 과정이 끝나면, Wireshark 중단 패킷 분석 : 클라이언트의 Wireshark에 캡처된 패킷 목록 4-1 ARP를 통한 MAC 주소 확인 요청 패킷 3 4
실습 3-2 데이터 링크 계층 패킷 분석하기 4-2 ARP를 통한 MAC 주소 응답 패킷 4-3 서로의 MAC 주소 확인 후 최초 전송되는 HTTP 패킷 통신 중 서버측의 ARP 테이블
실습 3-3 네트워크 계층 패킷 분석하기 • 스위치 또는 허브에 연결된 클라이언트(윈도우 XP)와 서버 시스템(윈도우 서버 2003, IIS 설치) • 필요 프로그램 : Wireshark(서버와 클라이언트에 각각 설치) **[실습 3-2] 환경에서 허브나 스위치를 라우터나 IP 공유기로 교체 실습환경
실습 3-3 네트워크 계층 패킷 분석하기 3계층에서의 OSI 계층의 패킷 흐름 이해 1 ➊단계 전 : 패킷 송신 컴퓨터는 ARP를 통해 패킷 수신 컴퓨터의 MAC 주소 확인. 보통 라우터는 게이 트웨이로 자신의 존재를 알리기 때문에 일반적인 통신 전에 각 시스템은 라우터의 MAC 주소를 알고 있음 ➊단계 : 패킷 송신 시스템은 패킷의 목적지 IP를 패킷 수신 시스템의 IP를 사용하여 전송하지만, 패킷 의 목적지 MAC 주소를 라우터의 내부 인터페이스MAC 주소로 적어 스위치로 보냄 ➋단계 : 라우터는 패킷의 2계층 정보, 즉 출발지와 목적지의 MAC 주소를 패킷에서 벗겨내고, 자신의 외부 인터페이스를 출발지 MAC 주소로 하고 패킷 송신 시스템의 MAC 주소를 목적지MAC 주소로 하여 패킷을 보냄 ➌단계 : 패킷이 패킷 수신 시스템으로 흘러감 1
실습 3-3 네트워크 계층 패킷 분석하기 패킷 캡쳐 : 서버를 IP 공유기의 WAN 포트에 연결 → 클라이언트는 일반 포트에 연결한 → [실습 3-2]의 2단계처럼 불필요한 프로토콜 제거 → 서버와 클라이언트의 Wireshark를 실행하고, 웹 브라우저로 서버의 IIS에 접속 ※ MAC 주소와 IP 설정 2
실습 3-3 네트워크 계층 패킷 분석하기 패킷 분석 : 서버와 클라이언트에서 캡처한 패킷 목록 4
실습 3-3 네트워크 계층 패킷 분석하기 4-1 클라이언트에서 라우터로 전송된 SYN 패킷
실습 3-3 네트워크 계층 패킷 분석하기 4-3(1) 서버에서 라우터로 전송된 SYN+ACK 패킷
실습 3-4 계층별 패킷 분석하기 패킷 내용 확인 : 맨 위 창에서 패킷을 하나 선택한 후 가운데 창에서 ‘Ethernet II ~’로 시작하는 행을 선택하면 맨 아래 창의 일부분이 강조됨(전기 신호로 전달되는 패킷의 2계층 정보의 실체). 3계층과 4계층의 패킷도 가운데 창에서 ‘Internet Protocol ~’과 ‘Transmission Control ~’ 부분을 각각 선택하여 확인 가능 • IP 공유기에 연결된 클라이언트(윈도우 XP)와 서버 시스템(윈도우 서버 2003, IIS 설치) • 필요 프로그램 : Wireshark(서버와 클라이언트에 각각 설치) 실습환경 1
실습 3-4 계층별 패킷 분석하기 마지막으로 7계층 정보인 HTTP 패킷의 부분을 제외한 패킷의 마지막 부분 확인
실습 3-4 계층별 패킷 분석하기 2계층 이더넷 패킷 헤더 분석 2
실습 3-4 계층별 패킷 분석하기 3계층 IP 패킷 헤더 분석 3
실습 3-4 계층별 패킷 분석하기 4계층 TCP 패킷 헤더 분석 7계층 HTTP 패킷 헤더 분석 4 5