Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 동적 SQL
- dto projection
- 부꾸
- 글또 #다짐
- 오블완
- SQL
- 사이드 프로젝트
- 보따리
- 북극곰
- open contribution jam
- Database
- 글또
- 부꾸러미
- jooq
- jscode
- 트러블슈팅
- spring context
- DI
- 코드트리
- 티스토리챌린지
- 테오의 스프린트
- 모의면접
- 프로그래머스
- 구슬
- 눈송이
- bean
- redis
- Spring
- 체험
- 후기
Archives
- Today
- Total
벤티의 개발 로그
[Network] #1 컴퓨터 네트워크 기초 본문
1. 컴퓨터 네트워크란?
컴퓨터끼리 정보를 교환하고 공유할 수 있도록 물리적 또는 논리적으로 연결된 데이터 통신 체계
2. 컴퓨터 네트워크에서 데이터를 전송하는 방식
1. Circuit Switching
- source에서 destination까지 하나의 전송 경로를 이용하는 방식의 통신
- 특징
- 회선을 지속적으로 유지하고 있어, source와 destination이 계속해서 일정하게 데이터를 지속적으로 주고받지 않는 한, 회선을 100% 사용하지 않아 비효율적이다.
- 회선 결정을 위해 delay가 발생할 수 있다.
- 한 번 전송이 이루어질 회선이 결정되면, 고정적인 데이터 전송 비율을 유지하면서 propagation delay만 일으키고 데이터를 전송할 수 있다.
- 한 번 전송이 이루어질 회선이 결정되면, 안정적으로 통신이 이루어진다.
2. Packet Switching
- 메세지를 여러 개의 패킷으로 쪼개서 전송하는 방식
- 패킷의 최대 길이는 1000 byte이며, 각 패킷은 전송되는 데이터의 일부와 제어 정보를 포함하는 패킷 헤더로 이루어져 있다.
- 전송 경로 사이에 있는 각 switching node 들에 패킷이 수신되면, 일단 저장한 후 받은 패킷이 어디로 가야할 지를 판단하고 다음 node로 전송된다.
- destination에서는 source가 보내고자 한 data를 모두 복구해서 사용한다.
- 특징
- Circuit Switching은 source에서 destination 까지 회선을 공유하고 있기 때문에, 데이터 전송이 이루어지지 않더라도 다른 사용자가 이용 불가하지만, Packet Switching은 여러 사용자가 동시에 패킷을 보내서 전송 선로를 공유하기 때문에 효율성이 좋다.
- source 와 destination 의 data rate이 다르더라도 전송이 된다.
- 트래픽이 많더라도, 여전히 패킷을 수신할 수는 있으나, delivery delay가 높다.
- 우선 순위 개념을 사용할 수 있다.
- 각 switching node에서 delay가 발생할 수 있다.
- 어떤 패킷을 어떤 경로로 전송하는지에 따라 같은 데이터를 전송하더라도 delay가 일정하지 않다.
- packet header 때문에 overhead가 발생한다.
3. Datagram
- 각 패킷이 이전 패킷에 영향 받지 않고 독립적으로 작용함
- 모든 패킷이 같은 경로를 가지지 않아도 됨
- Destination 에 도달할 때 패킷의 순서가 출발할 때와 달라도 됨
- Destination 에서 출발할 때의 패킷 순서를 복구하고, packet loss를 체크함
- 다른 전송 방식에 비해 유연함
4. Virtual Circuit
- Datagram에 Circuit Switching의 장점을 도입한 방식
- 패킷을 전송하기 전에 preplanned route를 결정하고, 모든 패킷이 경로를 따라 전송됨
- Circuit Switching 처럼 각 node들이 경로 결정을 할 필요가 없음
- 패킷들이 출발할 때와 같은 순서대로 도착함
3. 프로토콜이란?
- 정의: 서로 다른 네트워크와 기기들이 어떻게 통신하는지를 정의한 규칙
- Sender와 Receiver 사이에 주고 받는 메세지들의 형태와 순서, 데이터를 전송하고 수신할 때 어떤 일이 일어나야 하는 지도 정의함
- 프로토콜을 구성하는 기본 3요소
- Syntax: 전송되는 데이터의 구조와 형태가 지켜야 하는 규칙과 원칙
- Semantics: 전송된 데이터에 포함된 값들을 해석하고 조정과 에러 처리에 대한 제어 정보를 포함함
- Sequence(Timing): 데이터가 전송되는 시간적 순서 및 속도와 흐름을 관리함
- Service와 Protocol의 차이점: Service는 서로 다른 layer 간에 일어나며 하위 layer가 상위 layer에 제공하는 방식으로 이루어지고, Protocol은 서로 같은 layer 간에 일어난다.
4. OSI 7 Layer vs TCP/IP

OSI 7계층
- 정의: ISO에서 다른 시스템 간의 원활한 통신을 위해 제안한 통신 규약
- 물리 계층
- 두 장치 간의 실제 접속 등에 대한 규칙을 정의함
- 물리적 전송 매체와 전송 신호 방식을 정의
- 관련 장비: 리피터, 허브
- 데이터 링크 계층
- 두 개의 인접한 개방 시스템 간 연결 설정과 유지 및 종료를 담당
- 주요 기능: 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어
- 관련 장비: NIC, 브리지, 스위치
- 네트워크 계층
- 네트워크 연결을 설정, 유지, 해제하는 기능을 함
- 라우팅, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행
- IP
- 관련 장비: 라우터
- 전송 계층
- 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 End-to-End 간에 투명한 데이터 전송을 가능하게 함
- 상위 3계층과 하위 3계층의 Interface을 담당
- 주소 설정, 다중화, 오류 제어, 흐름 제어를 수행
- TCP, UDP
- 관련 장비: 게이트웨이
- 세션 계층
- 송수신 측 간의 관련성을 유지하고 대화 제어를 담당
- 대화 구성 및 동기 제어, 데이터 교환 관리 기능
- 오류가 있는 데이터의 회복을 위해 사용하는 동기점이 있다.
- 표현 계층
- 응용 계층과 세션 계층 사이에 위치하여 전송되는 데이터를 변환해줌
- 응용 계층
- 사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공
- 메일, 파일 전송 지원
TCP/IP
- 정의: 인터넷에 연결된 서로 다른 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
- TCP
- 가상 회선을 기반으로 하는 연결형 서비스 제공
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어, 스트림 전송 기능 제공
- TCP 헤더 포함 정보: source와 destination의 포트 번호 등등
- IP
- 데이터그램을 기반으로 하는 비연결형 서비스 제공
- 패킷의 분해/조립, 주소 지정, 경로 선택 기능 제공
- IP 헤더 포함 정보: source와 destination의 IP 주소 번호 등등
- TCP/IP 각 계층
- 응용 계층
- 응용 프로그램 간의 데이터 송수신 제공
- FTP/HTTP/SSH/SMTP/DNS
- 전송 계층
- 호스트들 간의 신뢰성 있는 통신 제공
- TCP/UDP/QUIC
- 인터넷 계층
- 데이터 전송을 위한 주소 지정, 경로 설정 제공
- IP/ARP/ICMP
- 네트워크 액세스 계층
- 실제 데이터를 송수신하는 역할
- Ethernet
- 응용 계층
5. OSI 7 Layer, TCP/IP 처럼 프로토콜을 계층화하는 이유
- 프로토콜이 복잡할수록 계층화된 구조가 유리함
- 복잡한 네트워크 작동 방식을 좀 더 관리하기 편하게 분리할 수 있음
- 서로 다른 모듈 간의 간섭을 하지 않게 하여, 서로 다른 모듈 간의 상호 작용의 연합으로 프로그램이 작동됨 (”plug-and-play”)
- 계층 level 값이 같으면, 서로 같은 protocol을 사용하여 송수신 할 수 있음
6. 캡슐화와 비캡슐화

- 캡슐화
- 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 데이터를 삽입시키는 과정
- 애플리케이션 계층 → 전송 계층: 세그먼트화, 데이터그램화, TCP 헤더가 추가됨
- 전송 계층 → 인터넷 계층: 패킷화, IP 헤더가 추가됨
- 인터넷 계층 → 데이터 링크 계층: 프레임화
- 비캡슐화
- 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
- 최종적으로 사용자에게 메시지가 전달됨
7. NIC와 리피터
- NIC
- 컴퓨터를 네트워크에 연결하여 통신하기 위해 사용하는 하드웨어 장치
- 데이터 전송 및 수신, 주소 할당, 네트워크 프로토콜 처리 등의 역할을 함
- NIC에 고유하게 할당된 하드웨어 주소가 MAC 주소로, NIC 만으로도 컴퓨터를 구분할 수 있음
- 리피터
- Physical Layer에서 사용
- LAN의 물리적인 거리 제약 조건을 극복하기 위해 사용
- 전송 속도가 같은 서로 다른 2개의 LAN 사이에 위치하여 전기 신호를 증폭해서 전송하는 역할을 함
8. 브리지
- 서로 다른 네트워크들을 연결하기 위해 사용되는 기기인 Intermediate System(IS) 중 하나
- 2개 이상의 LAN을 연결함
- Data Link Layer 에서 사용
- Frame에서 도착 주소를 추출한 뒤, Table에서 도착지 정보를 확인하여, 정보와 일치하는 LAN Segment로 Frame을 보냄
9. L2 스위치
- 브리지와 비슷하나, LAN이 아닌 서로 다른 Host(컴퓨터)를 연결함
- MAC 주소를 기반으로 목적지를 찾고, Frame을 전송함
10. 라우터
- 서로 다른 네트워크들을 연결하기 위해 사용되는 기기인 Intermediate System(IS) 중 하나
- 서로 유사하지 않을 수도 있는 네트워크를 연결하기 위해 사용
- 네트워크 계층에서 사용
- 여러 입력 링크 중 출력 링크 1개를 선택하여 접속시키는 기능을 가지는 장비인 스위치의 기능을 가지면서, 주소를 이용하여 목적지까지 가는 경로를 체계적으로 결정하게 만드는 장비
- WAN 연결
- 주로 LAN이나 WAN, 혹은 서로 다른 네트워크를 연결하여 사용
11. L3 스위치
- 라우터와 유사하나, VLAN 간 라우팅을 지원함
- 주로 Ethernet(사내 내부 네트워크)에서 사용
- IP 주소를 기반으로 목적지를 찾고, 패킷을 전송함
12. L7 스위치
- IP 주소, TCP/UDP 포트 정보, 패킷 내용을 바탕으로 스위칭을 해주는 장비이다.
- OSI 7계층의 프로토콜인 HTTP, SMTP, FTP를 바탕으로 분산 처리가 가능하다.
- 쿠키 정보 및 바이러스 패턴 분석이 가능하여 보안성이 높은 로드밸런싱이 가능하다.
- 도메인 이름, 쿠키, 세션 정보 등을 바탕으로 라우팅이 가능하다.
- Traffic Filtering, 보안성 검사, VPN을 지원한다.
- 상위 레이어의 스위치는 하위 레이어의 스위치의 기능들을 포함한다.
13. LAN과 WAN
- 나누는 기준: 네트워크의 coverage 영역
- 전송 속도는 LAN이 더 빠르지만, coverage는 WAN이 더 넓다.
- LAN은 Local Area Network, WAN은 Wide Area Network