티스토리 뷰
패킷
패킷은 네트워크를 통해 전송되는 작은 데이터 조각 단위이다. 큰 데이터가 있더라도 작게 패킷으로 나누어서 보내는 것이 규칙이다. 왜냐하면 큰 데이터를 그대로 보내면 대역폭(bandwidth)을 너무 크게 점유해서 다른 패킷의 흐름을 막을 위험이 있기 때문이다.
(대역폭이란) 네트워크에서 이용 가능한 최대 전송 속도로 정보를 전송할 수 있는 단위 시간당 전송량을 말한다.
데이터를 조각내서 패킷으로 보낼 때에는 순서대로 숫자를 붙여서 보낸다. 왜냐하면 네트워크를 통해서 패킷이 전송될 때 순서대로 도착하지 않을 위험이 있기 때문이다. 즉 나누어서 보낸 데이터 패킷을 수신 측에서 다시 조합해서 정상적인 데이터로 만들기 위해서 조립 순서를 적어서 전송하는 것이다.
전기 신호
비트 정보는 전기 신호로 변환되고 실제로는 네트워크에 전기 신호가 전송되고 있다.
LAN, WAN
네트워크는 접속할 수 있는 범위에 따라 LAN과 WAN으로 나눌 수 있다.
LAN이란 Local Area Network의 줄임말로, 지리적으로 제한된 지역을 범위로 하는 네트워크를 말한다. (e.g. 가정, 빌딩, 학교) 지리적으로 가까우므로 오류가 적고 속도가 빠르다.
WAN은 Wide Area Network의 줄임말로 지리적으로 넓은 범위에 구축된 네트워크를 말한다. 이것은 인터넷 서비스 제공자(Internet Service Provider, ISP)가 제공하는 서비스를 사용하여 구축할 수 있다. 지리적으로 멀기 때문에 오류가 많고 속도가 느리다.
(ISP란) 인터넷 상용 서비스 사업을 하고 있는 KT, U+, SK브로드밴드와 같은 사업자를 말한다.
가정에서의 네트워크 구성
일반적인 가정에서 네트워크를 구성하려면 아래와 같은 것들이 필요하다.
- 인터넷 서비스 제공자 선택
- 인터넷 회선 결정
- 인터넷 공유기
(인터넷 공유기란) 가정용 라우터라고 생각하면 된다.
가정용 네트워크는 당연히 LAN이다. 연결 방식은 유선과 무선으로 나뉘어 각각 유선랜, 무선랜으로 부른다.
소규모 회사의 네트워크 구성
가정용과 다르게 DMZ(DeMilitarized Zone)이 있다.
DMZ란 서버를 외부에 공개하기 위한 네트워크(외부망)이다. 주로 웹 서버, 외부 사용자와 메일을 주고 받는 메일 서버, DNS 서버 등이 있다.
회사의 서버는 온프레미스(on-premise)나 클라우드 방식으로 운영된다.
(온프레미스란) 서버를 사내에 설치하거나 따로 데이터 센터에 두는 경우를 말한다. 클라우드가 아닌 방식을 일컫는다.
(클라우드란) 인터넷을 통해 소프트웨어나 하드웨어 컴퓨팅 서비스를 제공하는 것으로 인터넷에 접속하기만 하면 언제 어디서든 이용할 수 있다.
프로토콜
네트워크에서는 서로 통신하기 위한 규약이 필요하다. 예를 들어 한 쪽이 프랑스어로 말하고 한 쪽이 한국어로 말하면 서로 알아들을 수 없지만, 영어를 공용어로 하자고 정한 뒤 소통하면 말이 통하는 것과 같다. 이를 프로토콜이라고 한다.
OSI 모델
네트워크 통신에 OSI라는 표준이 있다. 데이터 송수신을 할 때 거치는 일들을 7단계에 거쳐서 한다는 표준이다. 그 7단계의 일들은 각각의 계층(Layer)에서 이루어진다.
각 계층은 다음과 같다.
7계층 응용 계층(Application Layer): 웹 사이트 조회 같은 어플리케이션에 대한 서비스 제공
6계층 표현 계층(Presentation Layer): 문자 코드, 압축, 암호화 등 데이터를 변환
5계층 세션 계층(Session Layer): 세션 체결, 통신 방식을 결정
4계층 전송 계층(Transport Layer): 신뢰할 수 있는 통신 구현
3계층 네트워크 계층(Network Layer): 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소 결정
2계층 데이터 링크 계층(Data Link Layer): 네트워크 기기 간의 데이터 전송 및 물리 주소 결정
1계층 물리 계층(Physical Layer): 시스템 간의 물리적 연결과 전기 신호를 변환 및 제어
데이터를 보내는 송신 측은 7계층에서부터 1계층으로 (상위 계층 -> 하위 계층) 데이터를 전달한다. 각 계층은 독립적이어서 다른 계층으로부터 영향을 받지 않는다.
데이터를 받는 수신 측은 1계층부터 7계층(하위 계층 -> 상위 계층)을 거쳐 데이터를 받게 된다.
TCP/IP 모델
OSI 모델이랑 비슷한데 4계층으로 축약돼 있다.
- 응용 계층 (OSI의 응용, 표현, 세션 계층에 대응)
- 전송 계층 (OSI의 전송 계층에 대응)
- 인터넷 계층 (OSI의 네트워크 계층에 대응)
- 네트워크 접속 계층 (OSI의 데이터 링크, 물리 계층에 대응)
각 계층에는 다양한 프로토콜이 있다.
캡슐화와 역캡슐화
데이터를 보내려면 데이터를 전송하는 데 필요한 정보와 데이터를 받을 상대방에 대한 정보를 붙여서 다음 계층으로 보낸다. 이를 헤더(header) 라고 한다. 예를 들어 편지를 부칠 때 편지를 보내기 위해 주소지라든가 우표가 필요한 것과 같다.
OSI 모델을 예로 들어 생각하면 7계층인 응용 계층에서 부터 1계층인 물리 계층에 도달할 때까지 각 계층에서 생성한 헤더를 붙여서 다음 아래 계층으로 보내는 것이다. 이를 캡슐화라고 한다.
반대로 이를 받는 측에서 헤더를 하나씩 떼어서 위 계층으로 올려보내는데 이를 역캡슐화라고 한다.
Ref
미즈구치 카츠야 - 모두의 네트워크 (길벗 출판)
'공부일지(TIL) > Others' 카테고리의 다른 글
VScode Debugger step in, step out, step over (0) | 2021.08.31 |
---|---|
[네트워크] 물리 계층, 데이터 링크 계층이 하는 일 (0) | 2021.05.21 |
[C언어] 연결리스트 구현하기 (1) | 2021.03.03 |
[C언어] swap함수 구현하기 (1) | 2021.02.23 |
[C언어] 문자열 복사와 메모리 해제 (0) | 2021.02.22 |
- Total
- Today
- Yesterday
- jQuery
- 개발 공부
- Session
- oracle
- Java
- 포인터 변수
- til
- c언어
- Redux
- Prefix Sums
- 깃
- linkedlist
- GIT
- getter
- rxjs
- youtube data api
- 리덕스
- 제네릭스
- CSS
- Conflict
- 자바
- 인스턴스
- 알고리즘
- useEffect
- JavaScript
- react
- package.json
- SQL
- Data Structure
- this
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |