일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- @Component
- Spring
- C언어
- nestjs auth
- OpenCV
- python
- 카카오 코테
- 파이썬
- 컴포넌트스캔
- spring boot
- AWS
- TypeORM
- 가상면접사례로배우는대규모시스템설계기초
- git
- 시스템호출
- 코딩테스트
- 해시
- 구조체배열
- 카카오 알고리즘
- Nodejs
- nestjs typeorm
- 알고리즘
- nestJS
- thymeleaf
- @Autowired
- 스프링
- C++
- 코테
- 카카오
Archives
- Today
- Total
공부 기록장 💻
[네트워크] OSI 모델 본문
OSI 참조 모델
OSI 참조 모델의 배경
- ISO에서 1980년 말 경, 네트워크를 이용해 서로 다른 기종의 통신 시스템 간 상호 접속을 할 수 있도록 정보교환을 위해 필요한 최소환의 네트워크 구조를 제공하는 OSI 기본 참조 모델을 제안, 83년 국제 표준(ISO 7498)로 제정됨
- ISO에서 개방형 시스템 간 상호 접속(OSI: Open Systems Interconnection)을 위해 표준화된 네트워크 구조를 제공하는 기본 참조 모델을 제정하여, 이기종 간 상호접속을 위한 가이드라인을 제시하고자 함
OSI 참조 모델의 기본 목표
- 시스템 간 통신을 위한 표준 제공, 통신을 방해하는 기술적인 문제들을 제거
- 단일 시스템 간의 정보교환을 하기 위한 상호접속점 정의
- 제품들 간의 번거로운 변환 없이 통신할 수 있는 능력 향상하기 위해 선택사항을 감소
- OSI 참조모델 표준이 모든 요구를 만족시키지 못할 경우 다른 방법을 사용하는 것에 대한 충분한 이유를 제공하고자 함
- Open System(개방형 시스템
- 과거의 네트워크 환경은 폐쇄형 시스템(Closed System)으로, 네트워크를 구성한 제조업체마다 자신만의 고유한 프로토콜을 이용해 한정된 범위 내에서만 통신이 이루어졌다.
- 컴퓨터 사용이 일반회되고 네트워크 간 정보 교류가 활발해짐에 따라 제조업체에 무관하게 서로 통신할 수 있도록 개방형 시스템의 필요성이 대두됨
계층 구조
- ISO에서 제정한 7계층 구조 → 비슷한 기능을 갖는 모듈을 동일 계층으로 분할함과 동시에 Divide and Conquer 개념 도입을 통해 각 계층 간의 독립성을 유지할 수 있도록 하여 서로의 모듈에 미치는 영향을 최소화하는 목적을 둠
- 물리 계층(Physical Layer) - 물리적 링크를 설정, 유지, 해제
- 데이터 링크 계층(Data Link Layer) - 비트 도기 및 식별, 흐름제어, 오류제어 (MAC 주소)
- 네트워크 계층(Network Layer) - 논리적 링크 설정, 패킷 단편화, 라우팅 (IP 주소)
- 전송 계층(Transport Layer) - 메시지의 종단 간 전달, 흐름제어, 오류제어 (포트번호)
- 세션 계층(Session Layer) - 세션의 설정, 유지, 종료
- 표현 계층(Expression Layer) - 전송 데이터의 구문과 의미에 대한 처리 담당
- 응용 계층(Application Layer)- 응용프로세스에게 네트워크 접근 수단 제공
- PDU(Protocol Data Unit)
- 네트워크 구조에서 정보를 실어 나르는 기본 단위
- 상위 계층에서 전송을 원하는 SDU(Service Data Unit)에 제어 정보인 PCI(Protocol Control Information)을 덧붙임
- PDU = SDU + PCI
- PCI : 각 계층마다 별도로 정의
- 대표적으로 송수신측의 주소 정보, 에러 제어 정보, 흐름 제어 정보
동등(peer-to-peer) 계층 간의 통신
- N번째 계층에서 다른 시스템의 N번째 계층과 통신하기 위해서 상위계층의 메시지와 더불어 프로토콜 제어 정보 (PCI: Protocol Control Information)이용
- 동등 프로세스: 임의 계층에서 상대편 동일 계층의 모듈과 통신하는 프로세스
- ex) 2계층은 3계층에서 받은 데이터에 2계층의 헤더와 트레일러를 붙이고 1계층으로 내려 보냄
- 각 계층은 헤더와 트레일러 형식으로 해당 계층에 필요한 정보를 전달
- 캡슐화 과정(Encapsulation)
상하 계층 간의 통신
- 송신 장치의 응용 계층으로부터 물리계층까지 데이터가 각 계층을 따라 전달되고 전달된 데이터는 수신 장치의 물리계층으로부터 응용 계층까지 거슬러 올라감
- 서로 인접한 상하 계층간의 독립성 보장을 위해선, 각 계층의 인터페이스는 인접한 계층에 제공해야 하는 정보와 서비스를 명확하게 정의해야 함
- PDU: 계층마다 SDU에 PCI를 덧붙임 → 데이터에 계층 고유의 헤더를 붙이는 것
- IDU: 다음 계층에서해야 할 기능을 포함하는 ICI를 덧붙여 다음 계층으로 전달
- SDU: N+1 에서 N, N-1로 투명하게 전달되는 상위 계층 데이터
- PCI: 네트워크의 동등 계층으로 보내지는 정보 - 해당 계층에 어떤 서비스 기능을 수행하도록 지시하는 헤더
- 어떤 서비스 기능을 수행하도록 지시하는 역할
- 순서번호검사(SEQUENCE NUMBER), 에러 검사(error check), 압축 지시
- PDU:** PCI + SDU
- ICI: 서비스 기능을 호출하기 위해 N, N-1 계층 사이에 전달되는 임시 매개 변수
- 다음 계층에서 수행되어야 하는 명령들을 제공
- IDU: 계층 경계를 통과하여 전달되는 정보의 전체 단위
1. 물리 계층
- 가장 하위 계층 - 상위 계층에서 내려온 데이터를 상대방까지 보낼 수 있도록 송신지와 목적지 간의 물리적 링크를 설정, 유지, 헤제하기 위한 물리적, 전기적, 기능적, 절차적인 특성을 규정
- 물리적 특성: DTE와 DCE 사이의 물리적 연결에 관한 사항 (커넥터, 핀배치 접속 규격 등)
- 전기적 특성: 전압 레벨, 전압 변화의 타이밍 결정
- DTE와 DCE 모두 같은 코드를 사용해야 하고, 같은 전압 레벨 사용, 같은 길이의 신호 시간을 사용해야 함 → 거리와 데이터 전송속도가 결정됨
- 기능적 특성: 물리적으로 접속되는 두 장치 (DTE, DCE) 간의 상호작용에 쓰이는 각 회선에 의미를 부여 (데이터, 제어, 타이밍, 전기적 접지 등)
- 절차적 특성: 인터페이스의 기능적인 특징을 사용해 데이터 전송을 위한 사건의 순서 결정
역할
- 데이터 링크 계층으로부터 한 단위의 데이터를 받아 통신 링크를 따라 전송 될 수 있는 형태로 변환
- 비트의 흐름을 전자기, 광신호로 변환
- 매체를 통해 신호를 전송하는 역할
- PDU: Bits
고려 사항들
- 신호: 단극형, 극형, 양극형과 같은 신호의 종류 결정
- 부호화: 비트(0, 1)을 표현하는 신호 시스템을 결정
- 회선구성: 두 개 이상의 장치들에 대한 물리적 연결방법을 제공
- 점대점 방식
- 다중점 방식
- 전송회선의 공유 여부 및 사용 권한 설정
- 접속형태: 트리형, 버스형, 링형, 성형, 메쉬형 등의 네트워크 토폴로지 - 네트워크 장치들의 배열 형태, 데이터 흐름에 관한 요소
- 인터페이스: 두 장치 간에 공유하는 정보형태 결정
- 전송매체: 데이터 전송을 위한 물리적 환경을 결정
- 트위스티드 페어 케이블, 동축케이블, 광케이블 등의 유선 매체
- 전자기 신호를 전송하는 무선매체
2. 데이터링크 계층
- 이웃하고 있는 노드(컴퓨터, 라우터 등)뜰 간의 데이터 전송 담당
- 상위 계층에서 내려온 3계층 데이터에 물리 주소와 다른 제어정보로 구성된 헤더를 앞부분, 뒷부분에는 트레일러(에러 검출 코드)를 덧붙임
- PDU: Frame
역할
- 데이터 동기 : 물리계층에서 전송되는 비트들의 경계 구분, 비트 식별
- 노드 대 노드 전달: 이웃노드 간의 데이터 전송을 책임 (hop-by-hop 전송)
- 주소지정: 헤더에 데이터를 마지막으로 보낸 송신자의 물리주소와 다음으로 수신할 물리주소 포함
- 접근제어: 여러 시스템이 같은 링크에 연결되어 있을 때 특정 순간에 어느 시스템이 회선을 점유할지를 결정
- 흐름제어: 수신측으로 전달되는 패킷의 양을 조절
- 정지 대기 (stop-and-wait) 방식
- 슬라이딩 윈도우 (sliding window) 방식
- 에러제어: 에러 발생한 프레임을 검출하고 재전송/복원 방법을 포함
- 동기화: 헤더는 프레임이 도착했음을 수신측에 알리기 위한 비트를 포함
3. 네트워크 계층
- 네트워크의 연결을 관리, 유지, 헤제
- 스위칭(switching): 네트워크 전송을 위해 물리 링크들을 임시적으로 연결해 더 긴 링크를 만드는 것
- 패킷의 수신주소를 보자마자 정해진 방향으로 전송
- ex) 전화 네트워크
- 라우팅(routing) : 여러 경로를 이용할 수 있을 때, 패킷 전송을 위해 가장 좋은 경로를 선택
- 각 패킷은 서로 다른 경로를 거쳐 전송 가능, 다시 모여 원래 순서대로 재결합
- 라우팅 테이블을 찾아 알고리즘으로 최단 경로를 계산하여 전송 경로를 선택(스위칭보다는 동작 속도가 느림)
→ 논리 주소 : 최초 송신지와 최종 수신지의 주소 (전송 도중 변화 X)
역할
- 패킷 전달
- 논리 주소 지정: 송신지, 수신지의 네트워크(IP) 주소를 헤더에 포함하여 전송 (논리적 링크 구성)
- 라우팅: 가장 적절한 전송경로 선택 (경로 배정 서비스)
- 주소변환: 수신지의 네트워크(IP) 주소를 보고 다음으로 송신되는 노드의 물리주소를 찾음 (논리주소 → 물리주소)
- 다중화: 하나의 데이터 회선을 사용해 동시에 많은 상위 프로토콜 간의 데이터 전송을 수행
데이터 전송
- 서로 다른 네트워크에 속한 시스템 사이의 데이터 전송 과정
- 논리주소(네트워크 주소) : 송신지로부터 목적지까지 변함없이 유지
- 물리주소 : 한 시스템에서 다른 시스템으로 패킷이 이동될 때마다 변경
→ 라우터: 논리 주소를 기반으로 네트워크와 네트워크를 연결하여 물리주소 경로를 배정하는 기능 제공
4. 전송 계층
- 전송계층을 기점으로, 하위계층(네트워크→데이터링크→물리 계층)과 상위계층(세션→표현→응용 계층)으로 네트워크 서비스와 사용자 서비스로 구별할 수 있다.
- 네트워크 서비스: 내트워크 내에서 데이터 전달을 위한 경로 관리
- 사용자 서비스: 이용자의 메시지 표현형식 등의 기능 제공
- 두 서비스 간의 인터페이스 기능과 전체 메시지의 종단간(End-to-En) 전송 수행
역할
- 종단간 전송: 송신 컴퓨터의 응용 프로세스에서 최종 수신 컴퓨터의 응용 프로세스로의 전달
- 네트워크 계층: 전달해야 할 컴퓨터에 각 패킷을 이웃하는 네트워크로 전달
- 전체 메시즈를 수신 컴퓨터의 응용 프로세스에 전달
- 헤더: 포트주소, 소켓주소 - 서비스 지점 주소 포함 (포트주소&순서번호)
- 서비스 지점(포트) 주소 지정: 송신지 응용프로그램의 포트번호와 수신지 응용 프로세스의 포트번호 헤더에 넣어 전송
- 분할/재조합 : 송신하려는 데이터를 전송 가능한 크기로 나누고(segmentation), 세그먼트에 순서번호(sequence number)을 첨부
- 흐름제어: 종단과 종단간의 흐름제어
- 오류제어: 오류 발생한 세그먼트 처리 담당
- 연결제어: 양 끝단의 포트 사이에 메시지를 구성하는 전체 패킷들에 대한 송신지와 목적지 사이의 논리적인 통로인 연결을 설정하는 기능 수행
- P: 송신측 응용 프로세스의 서비스 포트 주소
- Q: 수신측 응용 프로세스의 서비트 주소
- 송신 포트주소와 수신 포트주소 P, Q 그리고 순서번호를 추가하여 세그먼트 단위로 분할하고 네트워크 계층으로 내려 보냄
5. 세션 계층
- 특정한 프로세들 사이에서 세션이라 불리는 가상연결을 확립, 유지, 동기화 기능 제공
- 프로세스: 응용 프로그램
- 두 프로세스가 대화하기 원할 때, 대화의 흐름이 원활이 이루어지도록 동기 기능 제공
- 전이중, 반이중 전송과 같은 데이터 전송방향 결정
역할
- 세션 관리: 프로세스 사이의 세션 연결 및 관리
- 동기화: 데이터 단위를 전송계층으로 전송하기 위한 순서를 결정하고, 데이터에 대한 중간 점검 및 복구를 위한 동기점 제공
- 대화 제어: 반이중 또는 전이중 대화 등을 결정
- 원활한 종료: 적절한 시간을 수신측에 알려주어 세션을 끊음
- 데이터 전송 방식: 두 장치 간의 연결 전송 방향을 정함 (단방향, 반이중, 전이중 등)
- 표현계층으로부터 받은 데이터를 효율적인 세션 관리를 위해 짧은 데이터 단위로 나눈 후, 전송 계층으로 내려 보냄
6. 표현 계층
- 송수신자가 공통으로 이해할 수 있도록 데이터 표현방식을 바꾸는 기능
- PDU 필드 내의 비트들의 구조화 방식을 정의, 두 응용 프로그램의 구문 협상(ASCII, EBCDIC 코드), 데이터 형식 정의(정수, 실수, 8진수 등)
역할
- 변환: 수신자가 해석 가능하도록 미리 정의된 형식으로 변환
- 암호화: 암호화, 복호화로 데이터의 보안성 제공
- 압축: 송신측에서는 데이터의 압축을 통해 전송률 증가, 수신측에서는 압축 해제
- 보안: 패스워드, 로그인 코드로 보안 기능 수행
7. 응용 계층
- 응용 프로세스가 네트워크 환경에 접근하는 수단을 제공
- 네트워크 관리 기능, 범용 응용 서비스 기능 포함
- X.400 : 전자우편에 관한 표준
- X.500 : 디렉토리 서비스
- FTAM: 이기종 컴퓨터 간 파일 전송, 파일 접근, 생성 삭제 등의 관리 기능
역할
- 네트워크 가상 터미널: 로컬에서 원격 시스템으로 로그인 가능케함
- 파일 접근, 전송 및 관리: 로컬에서 원격 시스템의 파일을 관리, 제어
- 우편 서비스
- 디렉토리 비스: 분산 DB 자원들과가 다양한 객체, 서비스 모델에 대한 접근 방법 제공
728x90
반응형
'# CS Study > Network' 카테고리의 다른 글
[네트워크] 컴퓨터 네트워크 개요 (0) | 2022.08.22 |
---|
Comments