막무가내 삽질 블로그

OSI 7계층과 TCP/IP 정리 본문

개념정리

OSI 7계층과 TCP/IP 정리

joong~ 2020. 2. 14. 17:40
728x90

Open System Intercon; OSI

 

OSI 7계층의 탄생 배경

 - 여러 통신 업체 장비들은 자신의 업체 장비 간만 연결이 되는 등 호환성이 없었다.

   따라서 ISO(국제표준기구) 단체에서 OSI 참조모델을 발표한다.

 

OSI 7계층의 목적

 - 표준화

 - 비용절감은 표준화를 통해 장비별로 이질적인 포트의 문제나 프로토콜 등으로 인한 문제를 해결

 

OSI 7계층을 나눈 이유는?

 - 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문

 

OSI 7계층의 계층별 프로토콜과 기능

 - 1계층 (Physical) 물리계층

프로토콜 : 전선, 전파, 광섬유, 동축케이블 등...

기능 :  물리적 매체를 통해 비트(Bit)흐름을 전송하기 위해 요구되는 기능등을 조정 케이블, 연결 장치 등과 같은 기본적인 물리적 연결기의 전기적 명세를 정하고 네트워크의 두 노드를 물리적으로 연결시켜 주는 신호방식을 다룸.

쉽게 말하면 이 계층에서는 단지 데이터를 전달만 할뿐 전송하려는 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. (데이터 전기적인 신호로 변환해서 주고 받는 기능만 할 뿐)

 

 - 2계층 (Data Link) 데이터링크 계층

프로토콜 : Token Ring, PPP, 무선랜 등...

기능 : 물리계층을 통해 송수신 되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다. 따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있다. 이 계층에서 전송되는 단위를 프레임(Frame, bit의 모음)이라고 한다.

 

- 3계층 (Network) 네트워크 계층

프로토콜 : IP, ICMP 등...

기능 : 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다. 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달 해주는 것이 이 계층의 역할이다.

 

- 4계층 (Transport) 전송 계층

프로토콜 : TCP, UDP 등,,

기능 : 통신을 활성화 하기 위한 계층, 패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 등 신뢰성 있는 통신을 보장한다.

 

- 5계층 (Session) 세션 계층

프로토콜 : TLS, SSH 등..

기능 : 사용자간의 포트연결(세션)이 유효한지 확인하고 설정한다.

 

- 6계층 (Presentation Layer) 표현 계층

프로토콜 : JPEG, MPEG 등..

기능 : 입출력 되는 데이터를 하나의 표현 형태로 반환한다.

 

- 7계층 (Application) 응용 계층

프로토콜 : HTTP, STMP, FTP 등..

기능 : 사용자가 네트워크에 접근할 수 있도록 해주는 계층

 

 

TCP/IP ?

TCP와 IP의 2개의 프로토콜로 이루어져 있는데 IP 프로토콜 위에 TCP 프로토콜이 놓이게 되므로 TCP/IP라 부른다.

TCP -> 전송 조절 프로토콜

IP -> 패킷 통신의 인터넷 프로토콜

IP는 데이터의 조각들을 최대한 빨리 목적지로 보내는 역할을 하고 TCP는 도착한 데이터를 점검하고 누락된 데이터를 다시 요청해서 정렬하는 역할을 한다.

 

TCP/IP 4계층

- 1계층 (Network Access) 네트워크 액세스(OSI 7계층의 1,2 계층에 해당)

- 2계층 (Internet) 인터넷 계층(OSI 7계층의 3계층 해당)

- 3계층 (Transport) 전송 계층(OSI 7계층의 4계층 해당)

- 4계층 (Application) 응용 계층(OSI 7계층의 5,6,7계층 해당)

 

 

TCP/IP 4계층에 의한 데이터 전송

 

참:https://velog.io/@conatuseus/2019-09-10-2009-%EC%9E%91%EC%84%B1%EB%90%A8-xsk0ds2eqf
참:https://www.joinc.co.kr/w/Site/Network_Programing/Documents/IntroTCPIP

 

사용자의 요청은 인터넷상에서 전달되기 용이한 패킷으로 만들기 위해서 TCP 패킷으로 만들어 지게 된다.

이것은 다시 인터넷 상에서 원하는 주소로 이동할 수 있도록 IP 패킷으로 만들어지고 이더넷카드로 보내져서 인터넷으로 나가게 된다. 라우터, 토큰링 같은 장치를 통해서 이더넷카드로 TCP/IP 패킷이 전달 된다. 이더넷 카드는 TCP/IP패킷을 바로 윗 계층(Internet)으로 보내는데 여기서 IP패킷을 분석해서 이 패킷이 어디에서 왔는지, 도착지가 어디인지를 판단한다(.IP주소 기반) 목적지가 자신이면 이것을 다시 3계층으로(Transport)로 보내고, TCP 프로토콜을 사용하여 메세지가 누락된게 있으면 다시 요청하고 순서를 재조합해서 4계층(Application)으로 보낸다. 4계층에서는 웹서버가 통신메세지를 http 프로토콜에 준하여 검사를 하여 사용자가 요청한 웹페이지를 읽어 들여서, 3계층(Transport)로 보낸다. 웹페이지를 브라우저까지 전송하는 과정은 위의 정반대의 과정을 순차적으로 거치게 된다. 최종적으로 웹브라우저는 웹페이지를 받아서 렌더링 작업을 거친 후 화면을 뿌려주게 된다.

 

 

내 앱에 TCP/IP 를 사용한 이유는?

- 메세지를 빠르게 보내고 받는 것도 중요하지만 제일 중요한 것은 신뢰성 있게 데이터가 오고 가야 한다고 생각한다.

내가 메세지를 보냈는데 상대방이 받지 못하거나 누락된 데이터가 있으면 그건 채팅이 아니라고 생각한다.

UDP같은 경우는 스트리밍 서비스나 CCTV쪽에 사용이 적절하다고 생각한다.

이유는 우선 TCP보다 빠르고 1~2개 누락된다고 크게 문제 될건 없고 가능한 많은 데이터를 보내는게 중요하다 생각한다.

 

참:https://swalloow.tistory.com/77

 

 

 

혹시 틀린 부분이 있다면 댓글로 알려주세요

 

 

참:https://shlee0882.tistory.com/110

참:https://www.joinc.co.kr/w/Site/Network_Programing/Documents/IntroTCPIP

참:https://velog.io/@conatuseus/2019-09-10-2009-%EC%9E%91%EC%84%B1%EB%90%A8-xsk0ds2eqf

참:http://blog.naver.com/PostView.nhn?blogId=demonicws&logNo=40117378644

참:https://swalloow.tistory.com/77

참:https://www.joinc.co.kr/w/Site/Network_Programing/Documents/IntroTCPIP

'개념정리' 카테고리의 다른 글

OkHttp Interceptor  (0) 2020.03.11
REST, REST API, RESTful, Retrofit 정리  (0) 2020.02.18
자바 컬렉션 (Java Collection) 정리  (0) 2020.02.17
TCP/IP 란? TCP/IP의 개념  (0) 2019.11.07
[스트리밍] 기본지식  (0) 2019.09.21
Comments