TIL101. HTTP : OSI 7 계층 & TCP/IP 4 계층

ID짱재·2021년 12월 17일
0

HTTP

목록 보기
15/17
post-thumbnail
post-custom-banner

📌 이 포스팅에서는 ISO 7 Layer와 TCP/IP 4 Layer에 대해서 정리하였습니다.



🌈 OSI 7 계층 & TCP/IP 4 계층

🔥 OSI 7 Layer

🔥 7개의 계층별 역할

🔥 TCP/IP 4 Layer



1. OSI 7 Layer

🤔 OSI(Open Systems Interconnection) 7계층이 무엇일까?

✔️ Open Systems Interconnection의 약자로 네트워크에서 통신이 일어나는 과정을 국제 표준 기구(ISO)에서 7단계로 제시한 것을 말한다.

✔️ OSI 7계층은 네트워크 통신기능을 7개의 수직계층으로 분할하여 각 계층마다 다른 계층과는 무관하게 자신의 독립적인 기능을 처리하도록 구성하였다.

🤔 OSI 7계층은 왜 필요할까?

✔️ 서로 이질적인 네트워크 간의 연결을 문제와 호환성의 해결하기 위해 국제 표준화 기구(ISO)에서 OSI 참조모델을 제시했다.

✔️ 7계층으로 분리하여 제시한 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있고, 특정한 곳에 문제가 발생해도 다른 단계의 장비 또는 모듈에 미치는 영향을 최소화하기 위해서이다.

✔️ 수직 계층을 채택했기 때문에 1단계부터 6단계까지 순차적으로 완벽하게 기능을 이뤄져야지 7단계가 작동될 수 있다.



2. 7개의 계층별 역할

🤔 Physical Layer

✔️ 모든 파일과 프로그램을 0과 1의 나열이다. 결국 0과 1만 주고 받을 수 있으면 통신이 성공한 것이다.

✔️ 이에 0과 1의 나열을 아날로그 신호로 바꿔 전선으로 흘려 보내고(encoding), 아날로그 신호가 들어왔을 때 이를 0과 1의 나열로 해석(decoding)하는 것이 Physical Layer의 역할이다.

✔️ 즉, 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받을 수 있게 해주는 모듈(module)을 Physical Layer라 한다. 여기서 말하는 모듈(module)이란 마치 함수와 같다.

✔️ Physical Layer는 전기적으로 On, Off 상태라고 생각하면 되고, Physical Layer는 PHY칩이라하여 하드웨어적으로 구현되어 있다.

✔️ 이에 1계층은 결국 물리적 회로이기 때문에 어떤 에러가 있는지에는 관여하지 않는다.


✔️ Link Layer은 물리적 장비를 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다.

✔️ 여러 대의 컴퓨터가 통신할 때 하나의 컴퓨터에서 0과 1로 이뤄진 데이터들을 동시에 전달 받는다면, 이를 목적에 맡게 끊어 읽을 수 있어야하는데 이때 앞 뒤에 비트열(시작:0000 / 끝:1111)을 붙여 서로 구분한다.

✔️ 이때 전달받은 실제 데이터를 비트열로 속아내는것을 Framing라 하는데, 이 Framing이 Link Layer의 대표적 역할 중 하나이다.

✔️ 또한 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고 받기 위해서 필요한 에러검출, 재전송, 흐름제어와 관련한 모듈은 Link Layer에서 처리한다.

✔️ 예를 들어, 데이터를 송신할 컴퓨터에서 데이터를 보낼 때, 2계층에서는 실제 보내고자하는 데이터 앞 뒤에 비트열을 붙여 1계층으로 보내 아날로그 시그널로 보내 전송한다.

✔️ 반대로 아날로그 신호를 받은 컴퓨터에서는 1계층에서 0과 1로 변환하고, 2계층으로 보내 앞 뒤에 비트열을 확인해서 실제 데이터를 속아낸다.

✔️ 또한 2계층에서는 프레임에 주소값을 물리적으로 할당받는데 이는 맥(MAC; Media Access Control) 주소라고 부르고, 2계층 또한 1계층 처럼 하드웨어(LAN카드 등)로 구성되있다.


🤔 Network Layer

✔️ Network Layer은 주소 부여(IP) 및 경로 설정(Route) 역할을 한다.

✔️ 즉, Network Layer 계층에서는 데이터에 IP주소를 header에 부착해서 패킷으로 감싼 뒤, 데이터를 목적지까지 전달하는 기능을 맡는다.

✔️ 데이터가 목적지까지 가는 과정에서 라우터들이 패킷을 열어 IP주소를 확인 한 뒤, 자신과 연결된 PC에 해당 IP주소가 존재하지 않으면 다시 패킷을 싸서 도달 가능한 다른 라우터로 데이터 전달(forwarding)해준다.

✔️ 이런 절차를 거쳐 여러 네트워크 사이에 노드들을 거쳐 목적지 IP까지 도달하게 되고, Network Layer는 운영체제의 커널 내에 소프트웨어적으로 구현되어 있다.


🤔 Transport Layer

✔️ Transport Layer은 해당 데이터가 목적지 IP에 도달 후, 요청한 프로세스에 도달할 수 있게 Port 번호를 패킷으로 감싸주는 역할을 한다.

✔️ Transport Layer는 운영체제의 커널에 소프트웨어적으로 구현되어 있다.


🤔 Session Layer

✔️ 통신 세션을 구성하는 계층으로, 포트(Port)번호를 기반으로 연결한다. 통신장치 간의 상호작용을 설정하고 유지하며 동기화한다.

✔️ 세션이란 데이터가 통신하기 위한 논리적인 연결을 말한다.

✔️ 세션 계층은 TCP/IP 세션을 만들고 없애는 기능을 함으로써 통신을 하기 위한 세션을 확립, 유지, 중단 역할을 한다.


🤔 Presentation Layer

✔️ Presentation Layer은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이로 인한 부담을 덜어 준다. MIME 인코딩이나 암호화 등의 동작이 표현 계층에서 이루어지는 것이다.

✔️ 예를 들면, 해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분 등이 표현 계층의 역할이다.

✔️ 결국 표현 계층은 사용자의 명령어를 완성 및 결과 출력하며, 압축 및 암호화하는 역할을 맡는다.


🤔 Application Layer

✔️ 응용 계층은 사용자와 바로 연결되어 있으며 응용 SW를 도와주는 계층이다. 사용자로부터 정보를 입력받아 하위 계층으로 전달하고 하위 계층에서 전송한 데이터를 사용자에게 전달한다.

✔️ 또한 파일 전송, DB, 메일 전송 등 여러가지 응용 서비스를 네트워크에 연결해주는 역할을 한다. 결국 응용 계층은 응용 프로세스와 직접 연계하여 일반적인 서비스를 수행한다.



3. TCP/IP 4 Layer

🤔 TCP/IP 4 Layer 란?

✔️ 사실 현대의 인터넷은 OSI 7계층 모델이 아니라 TCP/IP 모델을 따르고 있다.

✔️ 현대 인터넷이 TCP/IP를 따르는 이유는 OSI 모델이 TCP/IP 모델과의 시장 점유에서 이기지 못했기 때문이다.

✔️ 또한 오늘날 가장 많이 사용되는 것은 TCP/IP Update 모델이다.


🤔 TCP/IP 소켓 프로그래밍이란?

✔️ 운영체제의 Transport Layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것을 TCP/IP 소켓 프로그래밍 또는 네트워크 프로그래밍이라 부른다.

✔️ 소켓 프로그래밍만으로도 클라이언트, 서버 프로그램을 별도로 만들어서 동작시킬 수 있다. 즉, 누구든 자신만의 Application Layer 프로토콜을 만들어서 사용할 수 있다는 뜻이다.

profile
Keep Going, Keep Coding!
post-custom-banner

0개의 댓글