일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- flink
- 불공변
- HDFS
- 공변
- event time
- coroutines
- kotlin
- 가변성
- ingestion time
- Heuristic Watermarks
- watermarks
- Generic
- Coroutine
- apache flink
- watermark
- Perfect Watermarks
- contravariant
- java
- flink watermark
- Generics
- processing time
- Stream
- Perfect Watermark
- Heuristic Watermark
- lambda
- covariant
- flink watermarks
- Hadoop
- MapReduce
- Today
- Total
mm Home
OSI 7 본문
OSI 7 은 대학생때 배웠지만 역시나 기억이 나지 않으므로.. 정리를 한다.
OSI 7 이 왜 나왔을까?
TCP/IP Model(4계층) 에서 보다 표준화, 학습도구, 문제 해결을 위하여 계층간 독립성을 가지기 위해서 개발.
계층을 더 세분화함으로써 계층간 독립성을 구분시킬 수 있고, 독립성을 가지는 각 계층으로 인해 문제 해결도 보다 빠르게 할 수 있을 것이다.
물리계층 (1계층)
- 전송 매체의 물리적 인터페이스 기술
- 통신 케이블로 전기 신호 전송에 관한 인터페이스
- 물리 계층이기 떄문에 데이터 전달만 할뿐 알고리즘 없음 (소프트웨어적 구현이 없는 유일한 계층)
데이터링크 계층 (2계층)
- 물리계층 바로 위의 계층이다보니, 물리적 오류없이 한 장치에서 다른 장치로 프레임(데이터)을 전달하는 역할
- 송,수신 호스트 정보에 MAC주소가 기록됨 (호스트 간 데이터 전송이 이루어지기 때문에 물리적 주소가 필요)
- 흐름 제어 기능 (송,수신 호스트간 속도가 달라서 데이터 전송에 오류 발생 차단 위하여)
네트워크 계층 (3계층)
- 2계층은 송신 호스트와 수신 호스트간의 데이터 전송이다. (물리적 주소만 있으면 됨. 논리적 주소 필요 없음)
- 그러나 3계층은 다수의 호스트간에서 어떻게 데이터를 중계 할것인지를 규정함. (라우팅)
- 물리적 주소와 논리적 주소에 대해 혼동할 수 있을것 같은데, PC의 랜카드의 물리적 주소는 랜카드를 만들때 만들어진다. 그 물리적주소로 이 주소가 맞는지 아닌지 구분할 수는 있으나, 어디있는지는 알수가 없다. 그래서 IP를 통해 이 사람이 어디있는지를 알 수 있는 것이다.
- IP 주소가 경로 선택의 기준이 됨
- 혼잡 제어 기능 (네트워크 상에서 혼잡이 발생하는 경우 트래픽 문제를 조절)
전송 계층 (4계층)
- 종단간 (End-to-End) 신뢰성 있는 데이터 전송을 담당
전송 계층을 거치면 실제 경로상의 양 끝단 사이의 연결이 완성 (전송 계층 이후, application으로 감_네트워크 프로세스)
- 전송 오류율, 전송 속도로 인한 흐름 제어 기능 제공
- TCP/UDP
세션 계층 (5계층)
- 세션 기능 지원
세션: 일련의 요구를 하나의 요청으로 보고 그 상태를 일정하게 유지시키는 기술 _ 원격 로그인,원격 파일전송
- 대화 관리
- 동기화 지원
표현 계층 (6계층)
- 통신 양단에서 데이터를 서로 이해할 수 있도록 표현
- 압축(송신측에서 압축이면 수신측은 압축해제), 암호화(송신측에서 압축이면 수신측은 복호화), 인코딩(디코딩)…
응용 계층 (7계층)
- 하부 계층들을 이용해 사용자에게 편리한 응용 환경을 제공하는 것에 초점 (사용자와의 최상단 인터페이스 역할) _사용자를 위하여 다양하고 편리한 네트워크 응용환경을 지원함
- FTP, Telenet, DNS, SMTP….
하위계층의 문제점을 보완하기 위해 상위 계층에서는 항상 추가적인 데이터가 들어가게된다. 상위 계층으로 올라갈 때마다 데이터의 Header에 정보들을 추가하게 되는데 어느 곳에선 Trailer에 정보를 추가시키기도 한다.
저렇게 간략하게 보면 이해가 안되긴 한다. 좀 더 자세하게 살펴보자
1계층은 물리 계층이므로 패스하고...
데이터 링크 계층.
IEEE802 에서 정한 LAN의 표준 규칙 계열이다. (IEEE가 802는 80년 2월에 설립되어서 802가 붙여진 것 같다.) IEEE802가 데이터 링크 계층의 표준안을 다룬다고 보면 된다. 데이터 링크 계층에서 큰 부분은 LLC(Logical Link Control) 와 MAC(Medium Access Control) 이다. 참고로 2계층에서는 데이터를 프레임이라는 용어를 사용한다.
MAC부터 살펴보자.
물리적 특성을 반영하여 매체간 연결 방식을 제어하는 것이다. 2계층은 물리 계층의 바로 다음 계층이므로 물리 장비로 데이터(프레임)을 전달해야 한다. 그렇기 때문에 전달할 물리 장비의 주소를 알아야 하기 때문에 MAC 주소가 여기서 나오게 된다.
대표적인 프로토콜로 CSMA/CD 라는 것이 있다. 이왕 공부했으니 대략적으로 설명하자면..
데이터(프레임)를 전송하는 방식에서 데이터 충돌 가능성이 존재한다. 프레임 전송하는 과정에서 충돌 가능성을 해결하기 위한 프로토콜이라고 보면 된다. CSMA/CD 방식으로 LAN 환경을 실제로 구현한 제품이 이더넷이 된다.
이더넷 프레임의 구조는 아래와 같다.
- Preamble : 수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 시간 제공 (0과 1이 반복되는 7byte)
- Start Delimeter : 시작 구분자. Preamble 필드와 구분하기 위해 10101011 의 값을 가짐
- Address : MAC 주소 (이더넷에 내장되어 제공)
- Type :캡슐화된 상위 프로토콜의 패킷 종류 구분 (0800h = IPv4, 0806h = ARP, 86DDh = IPv6 …)
- 데이타 : 충돌 감지를 위해 최소 46바이트(CRC 검증을 위함. 모자란 부분은 패딩)
- CheckSum : 데이터 전송 과정에서 데이터 변형 오류의 발생 여부를 수신 호스트가 확인 할수 있도록 값 기록. CRC 에러 검출 기법
LLC는 데이터(프레임) 전송에서 전송 오류를 검출하고 재전송하는 기능을 수행한다. 한마디로 물리 계층에서의 데이터 전송에 오류가 있을 수 있으니, 상위 계층인 2계층에서 보완해주는 것이라고 보면 될 것이다.
LLC의 슬라이딩 윈도우 프로토콜이라고 불리우는 규약을 보면,
버퍼 사이즈를 두고, 송신 호스트는 수신호스트가 정상적으로 수신할 때 다음 프레임을 보낸다.
(버퍼사이즈가 1일 때) 송신호스트에서 0번째 데이터를 보내고, 0번째 데이터에 대한 정상 수신했다는 신호를(ACK) 받으면 1번째 데이터를 보내는 것이다.
출처 : http://ecomputernotes.com/computernetworkingnotes/communication-networks/sliding-window-protocol
프레임을 하나 보낼때마다 정상 수신했다는 ACK를 한번씩 수신해야 하므로 당연히 비효율적이다. 100개의 프레임을 보내려면 200번의 송수신이 일어난다. 굉장히 비효율적. 그래서 나온 것이 Go-back-N ARQ, Selective Repeat ARQ 있다. 해당 내용은 어렵지 않으니 검색해서 살펴보면 될 것 같다.
흑.. 세상에는 공부할게 너무 많다. 다음 계층은 나중에 정리해야겠다 ㅠㅠ
'개발 > 기타' 카테고리의 다른 글
Netty (0) | 2017.11.17 |
---|---|
Reactive Programming (0) | 2017.11.10 |
HTTP 동작 과정 (0) | 2017.10.26 |
Hystrix (0) | 2017.08.17 |