0. OSI 7계층 ? 왜 ?

- OSI 계층은 네트워크에서 통신이 일어나는 과정을 나눈 것을 말한다.

- 7계층으로 불리기도 하고, 5,6 계층을 제외하고 통상 OSI 5 계층이라고 불리기도 한다.

- 계층을 나눔으로써, 통신상의 오류가 발생했을 때 문제의 범위, 규모, 증상 등을 보고 

  비교적 빠르고, 쉽게 문제점을 찾아낼 수 있다. (독립적인 역할)

- 물론 이해를 편하게 해주기도 한다.

 

- 즉 OSI 모델은 프로토콜을 기능별로 나눈 것이다. 

- 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다.

- 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구성된다.

 

 

1. 물리 계층 ( Physical Layer )

- 전기적, 기계적인 특성을 이용해서 데이터를 통신 케이블을 통해 전송한다.

- 비트 단위 통신을 하며, 즉 0과 1의 상태이다.

- 전기적인 신호를 주고 받는 계층

- 대표 장비: 통신케이블, 허브, 리피터 ...

 

 

2. 데이터 링크 계층 ( DataLink Layer )

- 제가 네트워크시간에 배웠을 때는 Link Layer로 불렀는데 책마다 약간씩 차이는 있는 것 같습니다.

- 첫번째 계층 ( 물리 계층 )에서 송수신 되는 정보를 관리하여 정보 전달 수행을 도와준다.

- 통신상의 오류를 찾아주기도 하고, 재전송을 해주기도 한다.

- MAC 주소를 이용해서 통신을 한다. ( 전송단위는 Frame 이다 )

- 대표 장비 : 스위치, 브리지

- 스위치, 브리지 를 통해 MAC address 를 이용하여 물리계층에서 받은 정보를 전달하는 계층이다.

- Point to Point 로 전송을 신뢰성있게 해주기 위한 계층이다. 

- Mac address는 물리적으로 할당 받은 값이다. (ex ethernet) 

- 핵심 역할은 Frame 에 주소부여 (MAC) , 에러검출, 흐름제어, 재전송 

 

 

3. 네트워크 계층 ( Network Layer )

- "라우팅" 의 핵심 계층이다.

- 데이터를 원하는 목적지 까지 안전하고 빠르게 전달한다.

- 물리적인 주소가 아닌 논리적인 주소 (IP) 를 이용한다. (계층적인 구조이다)

- ( 전송단위는 Packet 이다. )

- 네트워크 관리자가 직접 주소를 할당하는 구조이다.

- 다양한 라우팅 기술과 프로토콜 종류가 있다.

- 대표 장비: 라우터

- 핵심 역할은 주소할당(IP), 경로 설정 (라우팅)

 

 

4. 전송 계층 ( Transport Layer )

- 통신을 활성화하기 위한 계층

- TCP, UDP 등의 프로토콜이 있다.

- TCP 프로토콜( Connection oriented )을 많이 이용하며, TCP와 UDP(빠르고 오버헤드가 적음) 를 섞어서 사용하기도 한다.

- End to End  종단 간 통신을 다루는 것에 있어서 최하위 계층이다.

- 종단 간 신뢰성 있고, 효율적인 데이터 전송을 하며, 오류 검출 및 복구, 흐름제어, 중복검사 등을 수행한다.

- Process 별로 data integrity(데이터 무결성), timing, throughput(처리속도), security 등에 대해서

  다양한 요구사항을 가지는데 이러한 요구를 잘 맞추어 주는 것이 중요하다.

- ( 전송단위는 Segment 이다. )

- 핵심 역할은 패킷 생성, 전송, 오류검출, 재전송

 

 

5. 세션 계층 ( Session Layer )

- 데이터가 통신하기 위한 논리적인 연결

- 저는 네트워크 시간에 주로 5계층을 기준으로 설명을 하셔서, 5,6 계층에 대해서는 아는바 가 별로 없습니다...ㅠ

 

 

6. 표현 계층 (Presentation Layer )

- 데이터 표현이 서로 다른 응용 프로세스의 독립성을 제공하고, 암호화 해준다.

- 암호화, 번역, 포장

 

 

7. 응용 계층 ( Application Layer )

- HTTP, FTP, SMTP, POP3 , IMAP 등과 같이 친숙한 프로토콜들이 많이 있다.

- 모든 통신의 양 끝단에 위치해 있는 프로토콜들이 있는 계층

- 통신 패킷들은 이러한 프로토콜들에 의해서 처리된다.

- router라던가, core 쪽은 신경쓰지 않아도 된다.

- (Client - Server), (peer to peer(P2P)) structure가 있다.

- Process 는 Socket을 통해서 메시지를 주고 받는다. (소켓은 문이라 생각)

- IP address 만으로는 부족하다. (ex. 스마트폰 에서 단 하나의 프로세스만 실행하지 않는다.)

- 따라서 해당 프로세스가 가지고 있는 고유의 port number를 이용한다.

- IP address + Port number + protocol -----> 하나의 flow

 

 

** 참고 : https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95

'학부생 공부 > 네트워크' 카테고리의 다른 글

HTTPS vs HTTPS  (0) 2021.09.19
쿠키 (cookie) 와 세션 (Session)  (0) 2021.05.31
TCP(전송 제어 프로토콜) / IP(인터넷 프로토콜)  (0) 2021.05.28
DNS (domain name system)  (0) 2020.04.13
SMTP (E-mail)  (0) 2020.04.12

1. JSON이란?

 

 

- 이름에서도 알 수 있지만 JavaScript의 객체를 정의하는 문법과 매우 유사한 형식을 따릅니다..

 

 

- 하지만 문법,프로토콜 등은 아니고 그저 텍스트 일 뿐......(데이터를 표시하는 방법)

 

 

- 일단 형식 자체가 이해하기가 매우 쉽다는 장점이 있습니다.

 

 

- 데이터를 전송하거나 저장을 할 때 많이 사용하는 형식 정도 라고 생각하면 될 것 같습니다.

 

 

 

 

 

2. JSON 특징

 

 

- JavaScript 함수를 통해 JSON형식의 파일을 JavaScript의 객체로 변환 할 수 있습니다.

  (JSON.parse("json텍스트") --> json을 자바스크립트 객체로)

  (JSON.stringify("자바스크립트 객체") --> 자바스크립트 객체를 json으로)

 

 

- 다양한 언어에서 json 데이터를 다룰 수 있는 라이브러리를 제공하고 있습니다.

 

 

- 서버와 클라이언트의 데이터 교류에 json형식이 많이 사용됩니다

 

 

- 용량이 적다.

 

 

 

 

 

3. JSON 형식

 

 

- javascript의 객체의 형식과 같이 {}(중괄호)로 묶어줍니다.

 

 

- "name" : "value"의 쌍으로 이루어져 있습니다. 

 

 

- "name" : "value" 쌍 사이는 ,(쉼표)로 구분하여 줍니다.

 

 

- key는 ""(쌍따옴표)로 묶어주며 문자열의 경우도 ""로 묶어줍니다.

 

 

- 객체안에 문자열, 정수, 배열[], 객체{} 등이 포함 될 수 있습니다

 

 

 

 

4. 예시형식

 

 

** TCP: Transmission Control Protocol

 - reliable transport (between sending and recieving process)

 - flow control : sender won't overwhelm receiver (받는 쪽의 버퍼 사이즈 이상으로 

                                보내지 않는다)

 - connection - oriented (연결 지향형) - 클라이언트와 서버간의 통신전 setup이 요구된다

                                                                              ( 데이터를 보내기전에 connection 을 먼저 만든다 )

 - timing,  minimum throughput 은 보장하지 않는다.

 

**UDP : User Datagram Protocol

 - unreliable data transfer (between sending and recieving process)

 - TCP보다 빠르다.

 - 지원하지 않는 것이 많다 (reliability, flow control, timing, throughput, security )

 

**그렇다면 왜 UDP를 버리지 않고 사용하는 곳이 있을까?

 - 예를들면, 비디오나 오디오를 다운받을 때 데이터의 약간의 변형 정도는 허용이 될때 TCP보다 빠르게 전송할 수 있다.

 - streaming multimedia 나 Internet telephony  등에서 TCP와 UDP를 섞어서 사용한다.

 

'학부생 공부 > 네트워크' 카테고리의 다른 글

FTP  (0) 2020.04.12
Web and HTTP  (0) 2020.04.06
Application Layer  (0) 2020.04.04
Internet structure  (0) 2020.03.26
Network Core  (0) 2020.03.25

+ Recent posts