2022. 12. 7. 17:20ㆍ네트워크 및 통신
목차 |
1. OSI 7계층 1.1. 물리 계층(Physical Layer, 1계층) 1.2. 데이터 링크 계층(Data Link Layer, 2계층) 1.3. 네트워크 계층(Network Layer, 3계층) 1.4. 전송 계층(Transport Layer, 4계층) 1.5. 세션 계층(Session Layer, 5계층) 1.6. 표현 계층(Presentation Layer, 6계층) 1.7. 응용 계층(Application Layer, 7계층) |
2. 식별자 |
3. Host 3.1. Switch 3.1.1. Router 3.2. End-Point |
1. OSI 7계층
OSI 7 계층은 그림과 같이 각 층의 순서를 따라, 각 층에 맞는 기술 및 방식으로 데이터를 끝에서 끝으로 전달해주는 것이다. 아래의 그림에 각 계층별 특징을 간단하게 그려보았다.
화면으로 보고있는 데이터를 전달하기 위해서는 기계가 알 수 있도록 변환시켜 주어야 하는데, 이 과정을 나타낸 것이다.
백엔드, 프론트엔드 프로그래밍을 위해서는 흐름정도는 파악해야하므로 가볍게 짚어봐야한다.
그림의 오른쪽 부분인 데이터를 전송받는 입장에서 살펴보도록하자.
1.1 물리 계층(Physical, 1계층)
전기, 물리 신호에 대한 계층이다. 물리적으로 연결을 해야 전기 신호를 전달이 가능하다. 데이터를 전송하기 위해서 반드시 연결되어 있어야하며, 아시아와 아메리카 대륙 사이에도 아래 사진과 같이 해저 케이블로 연결되어있다.
대표적인 장비로는 LAN 카드가 있다. 전송하는 단위는 'Bit'이며 전기적 신호(0, 1)를 나타낼 때 사용한다.
(0과 1은 전기가 "들어왔다, 안들어왔다" 의 두 가지 경우를 나타낸 것이다.)
물리적계층은 단순히 전기적인 신호를 전달하고 받는 역할만하고 ,상위의 계층에서 나머지 필요한 부분들을 해결해준다.
1.2 데이터 링크 계층(Data Link Layer, 2계층)
물리 계층(1계층)에서 받은 전기신호를 오류 수정 및 흐름 제어를 해주며, 데이터를 신뢰성있게 전송하는 계층이다. 물리 계층과 마찬가지로 직접 장비로 연결되어 데이터를 전송한다. 이 때의 전송 단위는 Frame이다.
물리적인 주소를 지정하고(Ex. MAC 주소 / 애플 MAC아님), 수신자의 주소를 확인하기도 한다. 물리 계층에서 발생할 수 있는 오류를 찾고 수정하는데 필요한 기능 및 절차들을 제공한다.
(MAC : Media Access Control / 매체 접근 제어)
1.3 네트워크 계층(Network Layer, 3계층)
네트워크 계층은 경로를 어떻게 지정할지 결정하는 계층이다. 이 계층에서는 'Packet' 단위로 데이터를 전송하며, 경로를 출발지점에서 도착지점까지 어떻게 보내야할지 결정한다. IP(Internet Protocol)가 네트워크 계층에 해당하는 대표적인 프로토콜이다.
(프로토콜은 간단하게 말하면 통신 규약이다.)
예를 들어 아래의 그림처럼 경로가 있다고 할 때, 어떻게 시작지점에서 도착지점까지 갈지 정해야한다.
이를 네트워크 계층에서 결정한다.
(시작점에서 출발하여 교차로를 만나 방향을 바꾸는 것을 스위칭이라하며, 식별자를 이용해 스위치 방향을 바꾼다.)
네트워크 계층에서는 아래의 기능들을 포함한다.
- 각 단말을 구분하도록 IP 주소를 할당하는 논리 주소 기능
- 복잡하고 다양한 결로들 중 가장 최적의 경로를 찾기 위한 경로 설정 기능
- 패킷 전달을 위해 할당된 IP 주소를 기반으로 네트워크를 구분하는 라우팅 기능
1.4 전송 계층(Transport Layer, 4계층)
전송 계층은 누가 누구에게 보냈는지에 대한 정보를 명시해준다. 이 계층에서의 전송 단위는 'Segment' 쪼개진 데이터 유닛이며, 이를 포트 번호 등으로 구분하여 다음 계층인 응용 계층이 나누어 받도록 하는 분할 작업을 한다.
전송 계층의 대표적인 프로토콜은 TCP/UDP가 있다.
TCP는 데이터를 발신하는 쪽에서 수신자가 온전한 데이터를 받을 수 잇도록 하는 책임을 지니고 있어서, 데이터가 제대로 전달되지 않은 경우 이를 재전송해야 한다. 반면 UDP는 그러한 책임을 지니고 있지 않아서 데이터가 제대로 전달되지 않은 경우에도 특별히 이를 재전송하지 않는다. (TCP만 이해한다면 UDP는 쉽게 이해할 수 있다.)
TCP는 IP위에서 동작하는 프로토콜로서 항상 TCP/IP 라고 붙여서 부른다.
1.5 세션 계층(Session Layer, 5계층)
통신하는 두 기기 사이의 연결 상태를 관장하는 계층으로, 어떠한 방식으로 두 기기가 상호작용할 것인지를 결정한다.
예를 들어 아이디와 암호를 이용해 서버에 접근해야할 때, 정상적인 방법으로 로그인한 사용자에게는 권할을 줄 것이고, 그렇지 못한 사용자에게는 접근 권한을 부여하지 않는 것. 또는 세션 게층에서 명시한 정보를 바탕으로 어떤 방식으로 반응을 할지 결정하게 된다.
1.6 표현 계층(Presentation Layer, 6계층)
데이터를 더 빠르고 안전하게 전송하기 위해 압축, 그리고 더 안전하게 전송하기 위한 암호화/복호화 작업을 하는 단계이다. 또한 수신자가 이해할 수 있는 형태로 데이터를 변환해준다.(인코딩) 데이터를 변환하는 이유는 통신하는 두 기기가 특성이 같다는 보장이 없기 때문이다. 이런 이유로 공통의 표준 형식을 만들어 서로 데이터를 주고 받는다.
데이터를 압축하기 전, 처음 상태가 10MB 라고 가정해보자(EBCDIC 코드 상태). 그 상태를 다른 형태로 번역(ASCII 코드)하여 크기를 줄 일 수 있다면, 전송속도가 빨라지고 손실률이 감소한다. 또한 그냥 데이터를 보내게 되면 중간에 누군가가 데이터를 가로채서 볼 수 있으니 암호화를 해준다. 데이터를 받은 수신자는 역순으로 복호화(암호화 풀기)하고 압축된 파일을 (ASCII코드 ==> EBCDIC코드) 원상복구 해서 다음 계층인 응용계층으로 던져준다.
대표적인 프로토콜에는 SSL(Secure Sockets Layer), JPEG(Joint Photographic Experts Group) 등이 있다.
1.7 응용 계층(Application Layer, 7계층)
앞선 계층들을 지나 최종 사용자가 확인하는 단계이며, HTTP와 같은 특정 프로토콜의 형식에 맞게 표현해주는 계층이다.
2. 식별자
각 계층에는 판별을 위한 식별자가 존재하는데 이를 가볍게 알아보자.
- 물리 계층 : MAC
- 데이터 링크 계층 : MAC / 물리계층과 같이 사용하며 물리적 주소이다.
- 네트워크 계층 : IP / 대중적으로 널리 알려져있는 주소이다.
- 전송 계층 : Port / 다양한 곳에서 Port라는 말을 쓰다보니 헷갈릴 수가 있다. 어디에서 어떻게 사용하는지 잘 구분하자.
3. Host
기본적으로 컴퓨터와 인터넷이 연결된 것이다.
호스트는 크게 두 가지로 나뉜다.
End-Point와 Switch로 나뉠 수 있는데, 이에 대해 알아보자.
3.1 Switch
Switch라는 개념을 알아보자. 서로 다른 컴퓨터 3대가 통신을 하려고 한다. 통신을 하기위해서는 모두 연결되어야 한다.
한 컴퓨터당 랜선이 두 개씩 필요한 셈이 된다. 이를 해결하기 위해 가운데에 하나의 컴퓨터를 둔다. 이를 Switch라 한다.
스위치는 한마디로 컴퓨터를 연결해주는 컴퓨터라고 할 수 있다.
만약, 한국에서 각 컴퓨터를 연결한다면 아래와 같은 모양일 것이다.
하지만 실제 물리적인 거리가 멀다면 어떻게 연결해주어야 할까? 효율적으로 연결하기 위해서는 스위치를 효율적으로 연결하여 쓸 수 있어야한다. 각 나라별로 연결해보자.
여기서 대륙이 멀리 떨어진 미국과 연결하기 위해서는 또 다시 스위치가 필요해진다.
위와 같이 스위치를 다시 스위치로 연결하고 또 다시 스위치로 연결하는 형태로 멀리 떨어진 컴퓨터와 연결되어 있다.
원거리에서 통신하더라도 물리적으로 연결이 되어있어야 가능한 것이다.
3.1.1 Router
Switch의 한 종류이지만, IP를 기준으로 Switch하는 것을 라우터라고 한다.
다음 그림과 같은 교차로(점) 하나 하나가 Switch라고 할 수 있다. 데이터의 시작지점에서 도착지점까지 경로를 정해서 가야한다. 여기서 전송하는 데이터의 형태를 패킷이라고 한다. 그리고 아래와 같이 지도처럼 라우터가 보고 경로를 판단할 수 있도록 하는 것을 라우팅 테이블이라고 한다.
간단하게 비유해보면, 아래와 같이 나타낼 수 있다.
- Rounting Table: 이정표
- Router: 교차로(L3)
- Packet: 데이터
- Internet: 도로망
3.2 End-Point
위의 형태에서 Switch의 종류에는 공유기가 있다. 이런 형태일 경우에 데이터를 요청하는 컴퓨터와 데이터(클라이언트)를 응답하는 컴퓨터(서버)까지의 데이터 이동을 그림으로 보도록하자.
A가 요청하여 이를 C가 응답 하여 데이터를 A에게 다시 보낸다고 생각했을때의 그림이다. 이 때의 끝지점을 혹은 꼭지점이 End-Point에 해당한다.
Router를 설명할 때 봤던, 시작지점과 도착지점 또한 End-Point라고 할 수 있다.
'네트워크 및 통신' 카테고리의 다른 글
RPC(Remote Procedure Call) 통신 (0) | 2023.05.26 |
---|---|
웹 소켓(Web Socket) 소개 (0) | 2023.01.26 |
HTTP Message (0) | 2022.12.14 |
HTTP Protocol (0) | 2022.12.13 |
TCP - 3 way hand shaking (0) | 2022.12.08 |