티스토리 뷰

728x90

CS공부를 조금씩 해보려고 합니다. 
 
첫번째 주제로는 네트워크! 
늘 일상속에 인터넷이라는게 잘 녹아있어 어떻게 동작하는지 궁금해져 한번 파보려고 합니다.
 
 

 

OSI

OSI(Open System Interconnection) 네트워크 통신이 일어나는 과정을 7 계층으로 나눈 것.

계층 흐름도

7 Layer

  1. Physical - 물리 계층 
  2. Data Link -  데이터링크 계층
  3. Network - 네트워크 계층
  4. Transport - 전송 계층
  5. Session - 세션 계층
  6. Presentation - 표현 계층
  7. Application - 응용 계층

 

계층을 나눈 이유 ?

네트워크 통신이 일어날때의 과정을 단계별로 파악할 수 있기 때문입니다. 
7단계중 문제가 생긴곳 중 해당 부분만 고치면 해결할 수 있겠죠. 
 
핸드폰 충전기를 예로 들어볼게요.
 
아래 사진처럼 일체형과 분리형이 있는데,
만약 충전이 안될때 
일체형의 경우 어디가 고장난지 몰라 아예 새걸로 사야하는 번거로움이 있지만, 
분리형의 경우 본체가 문제인지 케이블이 문제인지 확인 할 수 있고, 문제 되는 부분만 교체 하면 되겠죠.

 
이처럼 네트워크도 계층을 나누어 문제 되는 부분만 손 볼 수 있게 나누어 놓은 겁니다. 
 
 

들어가기전에..

 

데이터의 기술적인 개념

 

인터넷 기사들, SNS의 피드 등 우리는 이런것들을 통 틀어서 데이터 라고 표현 하죠.
사실 이런 데이터들은 엄청난 양의 0과 1로 이루어져 있습니다.
그럼 이 숫자로 되어 있는 데이터들을 어떻게 다른 컴퓨터로 전달 할까요? 
 

데이터 전달 방법

컴퓨터는 이진법의 숫자를 전기신호로 표현 할 수 있습니다.
 

전.기.신.호 로요.

 

이 사진마저도 전기신호로 전달하는것 !

그럼 전기신호를 전달해줄 케이블이 필요하겠네요.
 

전기신호를 어떻게 전세계로 다 보내주지?

 
국내에서 전기신호 보내는건 알겠는데, 한국에서 해외로는 어떻게 전기신호를 보낼까요.
답은 바다 아래에 있습니다. 
아래 사진 처럼 해저케이블로 전세계가 연결되어있어 전기신호로 소통이 가능해요!

 
0과 1의 데이터를 '전기신호로 주고 받는다' 까지 왔습니다.
자세한 내용은 아래 물리계층에서 덧붙여 설명할게요. 


 

1. Physical Layer - 물리계층

0과 1로 된 데이터를 전기신호로 변환해서 주고받는 기능을 하는 계층
• 데이터를 전송하는 역할만 진행합니다. (에러검사, 어떤 데이터인지 신경x)
통신 단위: Bit 
장비: 통신 케이블, 허브 등

0과 1로 된 데이터전기신호로 변환 해주는 하드웨어가 있어요.

랜 카드

컴퓨터 본체를 열어보셨거나, LAN 케이블을 한번이라도 연결 해보신분 이라면 한번쯤 보셨을 겁니다.
 

물리 계층 흐름

 

 
PC1

  • 0과 1로 된 데이터를 랜 카드로 전송
  • 랜 카드에서 0과 1로 된 (비트열) 데이터를 전기 신호로 변환 (encoding) 
  • PC2로 전기신호 전송

PC2

  • 랜 카드에서 전기신호를 0과 1로 복원 (decoding)
  • 데이터 수신 완료

2. DataLink Layer- 데이터링크 계층

 

• 기기들 사이의 데이터를 전송하는 역할.
• MAC 주소로 통신
• 통신 단위: Frame 
• 프로토콜: 이더넷, MAC, LAN, Wifi
• 장비: 스위치, 브릿지

 
물리계층에서는 오류가 나든 말든 상관없이 데이터 전송만 한다고 했는데요.
오류 감지는 데이터링크 계층에서 하며, 오류가 감지 되면 재전송하는 역할도 합니다.
 

MAC

 
MAC이 뭔데, 맥북이야?
 
 
 

MAC: 컴퓨터 간 데이터를 전송하기 위한 컴퓨터의 물리적 주소

 
그럼 IP는?
 
MAC 과 IP의 차이점은 아래와 같습니다. 
 

IP 
- 랜 카드에 연결되어 있는 회선(랜선)의 주소 (논리적 주소) 
- 인터넷망에 접속할 때마다 주소가 바뀜

MAC
-
랜 카드의 주소 (물리적 주소)
- 랜 카드의 고유한 주소이기 때문에 주소값이 바뀌지 않음

 
ex) 사람으로 비유를 해볼게요.

컴퓨터 사람
MAC 
(00-13-XX-10-AB-22)
주민등록번호
(00XXXX-XXXXXXX)
IP
(1.22.11.33)
이름
(김이박)
DNS
(www.naver.com)
별명
(Peppo)

 

Framing

여러대의 컴퓨터가 내 컴퓨터에 데이터를 동시에 보낸다고 했을때, 어떤 컴퓨터에서 보낸건지 어떻게 알까요?
이를 구분하기위해 데이터링크 계층에선 구분자 처리를 해줘요.
 
3대의 컴퓨터에서 1010이라는 데이터를 보낸다고 가정했을때,
각 컴퓨터의 데이터계층에서 맨 앞과 맨뒤에 숫자를 붙입니다.
이 과정을 Framing이라고 해요.

 
통신단위가 Frame 이라고 했던 이유입니다.

 
 

데이터링크 계층 흐름

 

 
PC1

  1. 원본 데이터 `100000` 
  2. 송신자의 데이터 구분을 위해 원본데이터 양 끝에 구분자를 추가 (T2, H2 참고)
    >> `1010으로 시작하고 0111로 끝나면 PC1이 보낸거고 그 안에 있는게 원본데이터야 ~`
  3. 물리계층으로 데이터 전달 
  4. 전기신호 로 전송

PC2

  1. 전기신호 0과 1로 복원 (decoding)
  2. 10101000000111 복원완료
  3. 데이터링크 계층으로 데이터 전달 
  4. 시작(1010) 끝(0111) 제거

 


3. Network Layer- 네트워크 계층

 

• 목적지 네트워크 주소(IP)를 정하고, 최적의 경로를 선택 후(Routing) 패킷을 전달해 주는 역할.
• IP 주소로 통신
• 통신 단위: 패킷(Packet)
• 프로토콜: IP
• 장비: 라우터

 

네트워크 계층 흐름

 
해외에 있는 A라는 친구한테 메일을 보낸다고 가정해 봅시다.

A의 IP 주소는 1.32.xx.xx 라고 할게요.

  • '안녕'이라는 메시지를 보내려고 할때, A의 IP주소를 data 앞에 붙인 후(IP 헤더) 스위치로 보냅니다.
  • 스위치에선 자신이 가진 주소중에 1.32.xx.xx 를 찾습니다. 
  • 없네요
  • 라우터로 보냅니다.
  • 최적의 경로를 찾아 (routing) 해당 라우터로 보낸후 스위치로 전달.
  • 스위치에서 1.32.xx.xx 주소를 가진 IP로 데이터 전달.


2계층 부분에서는 데이터링크 계층에서 언급한것과 같이 구분자 (ex. 시작: 1111, 끝: 0001) 가 추가됩니다.
1계층 부분에서는 0과1로 된 data를 전기신호로 변환하죠.

출처: 우아한테크 테코톡 OSI 7 Layer

 


TODO: 라우팅 테이블 내용 추가하기



작성하다보니 모르는 키워드도 많고 공부할것도 많네요.. 

이어서 4~7계층에 대해 정리해 보겠습니다 :)


참고

728x90

'CS (Computer science)' 카테고리의 다른 글

[CS] Hash Table(해시 테이블)  (0) 2023.07.06
[CS] 네트워크 - OSI 7계층 (4 ~ 7계층)  (0) 2023.06.18