티스토리 뷰
/**
우테코의 테코톡 유튜브 영상을 보고 정리한 내용입니다.
https://www.youtube.com/watch?v=1pfTxp25MA8&t=1286s
*/
# OSI-7 계층
> 모든 파일과 프로그램은 0과1로 구성되어있다.
> BUT! 단순히 전선에 +5V,-5V로 0과 1을 전송할수 없다.
> 전자기파는 sin함수형태로 나타난다.
> 하지만 전자기파는 계속 주파수값이 변화하고 전선은 모든 주파수를 전송하지 못한다.
> 즉, 엉뚱한 데이터가 전송되게 된다.
> 정확히 0과 1로 구성된 주파수는 전선으로 전송할수 없다.
> why? 주파수가 0부터 무한대이기 때문!
> 그렇다면 어떻게 전송할까?
> 정답! 아날로그 신호로 변경해서 보내야 한다.
# 물리계층
> 0과1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려보낸다 (encoding)
> 0과1의 나열을 해석해서 디지털 신호로 바꾼다. (decoding)
> 물리적으로 연결된 두 대의 컴퓨터가 0과1의 나열을 주고받을수 있게 해주는 모듈
> 물리계층 기술은 어디에 구현되어 있을까?
> 1계층 모듈은 하드웨어적으로 구현되어 있다.
# 데이터 링크계층
> 여러 컴퓨터를 연결하기 위해서는 전선을 연결한다.
> 하지만 컴퓨터의 수 만큼 전선을 연결하면 비용이 넘쳐나게 된다.
> 망형(mesh형)
> Q. 전선하나를 가지고 여러 대의 컴퓨터와 통신하는 방법은 없을까?
> 하나의 전선에 컴퓨터를 모두 연결시킨다. (bus형)
> but! 연결된 모든 컴퓨터에게도 데이터가 전송된다.
> 이렇게 하나의 전선을 박스에 넣어 놓은 것을 더미 허브라고 한다.
> Q. 원하는 컴퓨터에만 데이터를 보내려면 어떻게 해야 할까?
> 이 역할을 스위치가 해준다.
> Q. 전선으로 연결되지 않은 컴퓨터에 데이터를 전송하려면?
> 스위치와 스위치를 전선으로 연결을 시킨다.
> 즉, 스위치와 스위치를 연결하여 서로 다른 네트워크에 속한 컴퓨터 끼리 통신을 가능하게 해주는 장비를 라우터라고 한다.
> Q. 여러 네트워크를 연결하려면 어떻게?
> 5개 네트워크를 라우터로 연결한 것을 인터넷이라고 한다.
> 실제로 우리나라와 일본은 해저 케이블로 연결되어 있다!
> Q. 여러 대의 컴퓨터가 통신하려면?
> 동시에 여러 컴퓨터가 하나의 컴퓨터에 데이터를 전송하면 연결되어 데이터를 받게 된다.
> 누가 보낸 데이터인지 구부하기 위해 시작과 끝에 특정 비트를 집어 넣는다.(Framing)
> 결국, 데이터 링크란?
> 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해 필요한 모듈
> Q. 데이터 링크 계층의 기술은 어디에 구현 되어있을까?
> 랜카드! 데이터 링크 역시 하드웨어적으로 구현되어 있다.
# 네트워크 계층
> Q. 더 많은 컴퓨터들과 통신하려면 어떻게 해야 할까?
> ( 목적지 IP주소 + 데이터 )를 보낸다.
> 이렇게 보내는 데이터를 패킷이라고 한다.
> 네트워크 계층이란?
> 수많은 네트워크들의 연결로 이루어진 Inter-network 속에서 어딘가에 있는 목적지 컴퓨터로 데이터를 전송하기 위해,
> ip주소를 이용해서 길을 찾는다.(라우팅 routing)
> 자신 다음의 라우터에게 데이터를 넘겨준다.(forwarding)
> 3 > 2 > 1 > 1 > 2 > 3 > 2 > 1 >
> Q. 네트워크 계층 기술은 어디에 구현되어 있을까?
> 운영체제 커널에 소프트웨어 적으로 구현되어 있다.
# 전송계층
> 이제 전세계의 컴퓨터와 데이터를 전송할수 있다.
> 컴퓨터에 카카오톡과 배달의 민족 두 개의 프로세스가 실행되고 있다.
> Q. 컴퓨터는 어떤 데이터를 무슨 프로세스에게 줘야하는 알수 있을까?
> 데이터를 받고자하는 프로세스들은 포트 번호를 받아야한다.
> 포트 번호란?
> 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야
하는 정수값이다.
> 전송계층이란?
> Port 번호를 사용하여 도착지 컴퓨터의 최종 도착지인 프로세스에 까지 데이터가 도달하게 하는 모듈!
> Q. 전송계층 기술은 어디에 구현되어 있을까?
> 운영체제 커널에 소프트웨어 적으로 구현되어 있다.
# OSI 모델 vs TCP/IP 모델
> 사실 현대에는 TCP/IP 모델을 따르고 있따.
> TCP/IP 모델도 OSI모델과 마찬가지로 네트워크 시스템에 대한 모델
> Q TCP/IP 모델을 따르는 이유는?
> 시장 점유율을 졌기 때문!
> 세션 + 표현 + 응용 = 응용
# 응용 계층
> TCP/IP 소켓 프로그래밍
> 운영체제의 전송계층에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것을
TCP/IP 소켓 프로그래밍 혹은 네트워크 프로그래밍이라고 한다.
> 소켓 프로그래밍 만으로도 클라이언트, 서버 프로그램을 따로따로 만들어서 동작 시킬 수 있다.
> 소켓 프로그래밍을 통해서 누구든 응용계층 프로토콜 (인코더 디코더)를 만들 수 있다.
> 대표적인 응용계층의 프로토콜이 HTTP
# 정리
> MVC 패턴은 소프트웨어 아키텍처 중 하나이다.
> Layer 아키텍처도 소프트웨어 아키텍처 중 하나이다.
> Layer 아키텍처를 대표하는 예가 네트워크 시스템이다.
> 즉, 네트워크 시스템은 하나의 거다한 소프트웨어 이며
> OSI 7계층은 거대한 소프트웨어의 구조를 설명하는 것이다.
[10테코톡] OSI 7 Layer
'Web' 카테고리의 다른 글
TIL (2) 웹과 HTTP (0) | 2021.05.26 |
---|