티스토리 뷰
저는 비전공자이기 때문에 네트워크가 어떻게 이루어지는 지도 몰랐으며,
API를 이용하여 서버와 어떻게 통신하여 데이터를 주고받는지 큰 틀을 알기 위해서 작성하게 되었습니다.
너무 자세하게 작성하여 알게 하는 것이 목적이 아닌 처음 보는 모르는 사람도 재미나게 읽으면서 이해하는 게 목적입니다 ^^
네트워크 계층이란 뭘까?
데이터를 주고받기 위해 네트워크로 통신하는 각 과정을 계층으로 분리하여 개념화한 모델입니다.
그래서인지 각 계층의 구간 별로 어떻게 데이터가 변하는지, 움직이는지, 오류가 어디서 발생하는지 쉽게 찾을 수 있습니다.
계층의 시각화
OSI 7 계층에 응용 계층, 표현 계층, 세션 계층이 합쳐져 TCP/IP 모델에서는 하나의 응용 계층이 되었고
물리 계층, 데이터 링크 계층이 합쳐져 네트워크 접속 계층이 된 것을 볼 수가 있습니다.
그래서 OSI 7 Layer에서는 각각 무엇을 하는지 알아야 현대 네트워크 계층인 TCP/IP 모델을 이해하기 쉽기 때문에
OSI 7 Layer를 간단하게 표로 설명해 주겠습니다.
OSI 모델 각 계층의 역할
계층 | 이름 | 설명 |
7계층 | 응용 계층 (Application Layer) | 이메일 & 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공한다. |
6계층 | 표현 계층 (Presentation Layer) | 문자 코드, 압축, 암호화 등의 데이터를 변환한다. |
5계층 | 세션 계층 (Session Layer) | 세션 체결, 통신 방식을 결정한다. |
4계층 | 전송 계층 (Transport Layer) | 신회할 수 있는 통신을 구현한다. |
3계층 | 네트워크 계층 (Network Layer) | 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소를 결정한다. |
2계층 | 데이터 링크 계층(Data Link Layer) | 네트워크 기기 간의 데이터 전송 및 물이 주소를 결정한다. |
1계층 | 물리 계층(Physical Layer) | 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어한다. |
이것만 보고 아~ 이 계층은 이러한 역할을 하는구나라고 바로 이해는 되지 않을 것입니다.
처음 공부하는 사람이라면 아 이런게 있네?라고 보시면 됩니다.
한 번에 알라고 하면 너무 깊게 들어가야 하기 때문에 이해를 천천히 시켜가는 것이 좋다고 생각합니다.
잠깐의 설명
네트워크 계층을 설명하는 이유가 데이터가 어떻게 전달되며 무슨 역할을 하는지 알기 위해서 인데
위에 OSI 7 Layer와 TCP/IP 모델 사진과 표를 보면 그래도 계층이 이렇게 있고 역할까지 알았습니다.
그래서 데이터가 어떻게 전달되는 건데!? 라고 궁금하실 수 도 있을 것 같습니다.
다음 아래부터 TCP/IP Model로 쭉 사진과 같이 설명해 주겠습니다.
캡슐화와 역캡슐화
컴퓨터로 검색을 하거나 뭐 어딘가에 로그인 한다고 생각해보자.
그럼 우선 검색 데이터나 로그인 데이터를 나의 컴퓨터에서 요청하는 서버에게 데이터를 보낼 것이다.
근데 그 데이터를 쌩으로 보냈는데 탈취하면 어캐 할 것 인가..... 또한 그 데이터를 어디로 보낼 것인가...
그래서 우린 캡슐화를 하는 것이고 받는 서버는 그걸 풀어야 하기 때문에 역캡슐화를 하는 것이다.
캡슐화
데이터 송신할 때 데이터의 앞부분에 전송에 필요한 정보들을 붙여서 다음 계층으로 보내야 합니다.
이 필요한 정보들을 헤더라고 하며 데이터를 전달받을 상대방에 대한 정보도 포함되어 있습니다.
이처럼 헤더를 붙여 나가는 것을 캡슐화 라고 합니다.
역캡슐화
데이터를 수신할 때 헤더를 하나씩 제거하는 것입니다.
데이터를 송신할 때 캡슐화를 진행하며 헤더에 무슨 정보가 붙는지 알아보도록 하겠습니다.
4계층 - 전송 계층
전송 계층에서 붙여지는 헤더의 정보는 종단 간 신뢰성 있는 데이터 전송을 담당하고, 종단(HOST)의 구체적인 목적지까지 Data가 도달할 수 있도록 합니다. TCP 또는 UDP 헤더가 포함됩니다.
즉, 출발지 Port, 도착지 Port, 전송 제어, 순서, 검증 정보 ..등등이 있습니다.
Tip) TCP : 전송 제어 프로토콜, UDP : 사용자 데이터그램 프로토콜
3계층 - 네트워크 계층
네트워크 계층에서 붙여지는 헤더의 정보는 목적지 컴퓨터로 데이터 전송을 위해 종단 간 전송을 위한 경로 설정을 합니다.
즉, 출발지 IP, 도착지 IP, 패킷의 길이, 프로토콜 종류 ..등등이 있습니다.
상위 계층인 전송 계층에서 받은 데이터가 페이로드(PayLoad)이고 헤더를 붙인 상태로 이루어져 있습니다.
2계층 - 데이터 링크 계층
데이터 링크 계층에서 붙여지는 헤더의 정보는 신뢰성 있는 전송을 보장하기 위한 설정을 합니다.
즉, 데이터에 프레임을 씌우며 헤더에는 송신자와 수신자의 MAC 주소, 프로토콜의 정보, 데이터의 길이.. 등등이 있습니다.
그리고 또한 특이하게 헤더 말고 트레일러라고 붙는데 이것은 오류 검사 비트(CRC)가 포함되어 있습니다.
마지막으로
다시 한번 아래 사진을 보며 흐름도를 이해하면 좋겠습니다.
간단하게만 보는데도 MAC, 패킷, TCP/IP, 프로토콜 등등 모르는 단어가 아주 많이 나올 것입니다.
큰 틀만 보여주며 이해시키기 위해 깊게는 작성하지는 못 하였지만 꼭 모르는 단어는 한 번은 찾아보면 좋겠습니다.
감사합니다.
'네트워크' 카테고리의 다른 글
[보안] CORS : 개발자가 알아야 할 이슈와 해결 방법!! (0) | 2023.10.27 |
---|---|
[네트워크] HTTP 응답 상태코드: 브라우저와의 통신, 의미와 해석 (0) | 2023.10.20 |
- Total
- Today
- Yesterday
- AJAX
- spring
- 디자인패턴
- Fetch
- 프로세스
- git
- Cors
- aws
- 개발
- 오라클
- Spring Security
- DBeaver
- Mac
- 개발환경
- java
- 개발자
- 개발블로그
- 템플릿
- 데이터 베이스
- 네트워크
- 프론트
- JavaScript
- 자바스크립트
- 코딩테스트
- Front
- 비동기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |