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 | 31 |
Tags
- OPENPATH
- 오픈챌린지
- 디자인교육
- UXUI챌린지
- KDT
- 백엔드개발자
- 디자인강의
- 환급챌린지
- baekjoon
- 국비지원취업
- 티스토리챌린지
- 디자인챌린지
- JPA
- 국비지원교육
- Be
- mysql
- 부트캠프
- 패스트캠퍼스
- Java
- UXUI기초정복
- 객체지향
- 오픈패스
- Spring
- 오블완
- 내일배움카드
- 백엔드 부트캠프
- 자바
- 백준
- UXUIPrimary
- 국비지원
Archives
- Today
- Total
군만두의 IT 개발 일지
[스터디11] 4. 네트워크 본문
목차
CHAPTER 05 네트워크
여러 대의 장치가 그물처럼 연결되어 정보를 주고받는 통신망
1. 네트워크의 큰 그림
네트워크의 기본 구조
- 네트워크: 노드(네트워크 기기)와 간선(유무선 통신 매체)으로 이루어진 그래프 형태
- 네트워크 토폴로지(Network Topology): 노드 간 연결 구조로, 망형, 트리형, 링형, 성형, 버스형(선형) 등이 있음.
네트워크 구성 요소
- 호스트(Host): 네트워크의 가장자리에 위치하며 데이터를 송수신하는 최종 장치 (예: 노트북, 서버 컴퓨터)
- 클라이언트와 서버: 요청(request)을 보내는 호스트를 클라이언트, 응답(response)을 보내는 호스트를 서버라고 함.
- 중간 노드: 호스트 간의 데이터 전송을 돕는 네트워크 장비 (예: 스위치, 라우터)
LAN과 WAN
네트워크는 규모에 따라 나뉜다.
- LAN(Local Area Network): 가정이나 기업처럼 비교적 가까운 거리를 연결하는 근거리 네트워크
- WAN(Wide Area Network): LAN과 LAN을 연결하는 원거리 네트워크로, 인터넷이 가능하게 함.
- ISP(인터넷 서비스 제공업체)가 주로 구축하고 관리
패킷 교환 네트워크
- 오늘날의 네트워크는 데이터를 패킷(packet)이라는 작은 단위로 쪼개어 송수신하고, 수신지에서 재조립하는 패킷 교환 방식을 사용함.
- 하나의 패킷은 실제 데이터인 페이로드(payload)와 부가 정보인 헤더(header), 트레일러(trailer)로 구성됨.
주소와 전송 방식
- 주소: 패킷을 올바르게 전달하기 위해 필요하며, 대표적으로 IP 주소와 MAC 주소가 있음.
- 전송 방식:
- 유니캐스트: 1:1 통신 방식
- 브로드캐스트: 네트워크 내의 모든 호스트에게 메시지를 전송하는 방식
프로토콜과 네트워크 참조 모델
- 프로토콜(Protocol): 네트워크에서 노드 간 통신을 위한 합의된 규칙이나 방법으로, 대표적으로 IP, ARP, TCP, UDP, HTTP 등이 있음.
- 네트워크 참조 모델: 통신 과정을 계층적으로 표현한 모델
- OSI 7계층 모델: 국제 표준화 기구(ISO)에서 만든 이론적인 모델로, 7개의 계층(물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용)으로 구성됨.
- TCP/IP 모델: 구현과 프로토콜에 중점을 둔 실용적인 모델로, 4개의 계층(네트워크 액세스, 인터넷, 전송, 응용)으로 나뉨.
캡슐화와 역캡슐화
- 캡슐화: 송신 측에서 데이터를 보낼 때, 각 계층을 지나면서 필요한 정보(헤더)를 덧붙이는 과정
- 역캡슐화: 수신 측에서 데이터를 받을 때, 각 계층을 지나면서 헤더를 제거하여 원본 데이터를 얻는 과정
2. 물리 계층과 데이터 링크 계층
통신이 이루어지는 가장 근원적인 계층으로, LAN 내 통신 기술을 다룬다.
이더넷(Ethernet)
- 오늘날 대부분의 유선 LAN에서 사용하는 기술 표준(IEEE 802.3)
- 통신 속도, 매체, 프레임 형식 등을 정의
이더넷 프레임
- 이더넷 네트워크에서 주고받는 데이터 단위
- 수신지/송신지 MAC 주소, 타입, 데이터(페이로드), FCS(오류 검출) 등의 필드로 구성
유무선 통신 매체
- 유선 (트위스티드 페어 케이블): 구리선을 꼬아 만든 케이블로, '카테고리' 등급에 따라 성능이 결정됨.
- 무선 (전파, WiFi): 전파를 이용하는 무선 LAN 기술(IEEE 802.11)로, 2.4GHz, 5GHz 등의 주파수 대역을 사용하며, 신호 간섭을 피하기 위해 채널로 세분화됨.
네트워크 장비
- NIC (네트워크 인터페이스 컨트롤러): 컴퓨터를 네트워크에 연결하는 하드웨어로, MAC 주소가 부여됨.
- 허브: 물리 계층 장비로, 들어온 신호를 모든 포트로 전달함. (반이중 통신)
- 스위치: 데이터 링크 계층 장비로, MAC 주소 테이블을 학습하여 목적지 포트로만 프레임을 전달함. (전이중 통신)
3. 네트워크 계층 - IP
LAN을 넘어 다른 네트워크와 통신하기 위한 계층으로, 핵심 프로토콜은 IP(Internet Protocol)다.
IP의 목적과 특징
- IP의 주된 목적은 주소 지정(addressing)과 단편화(fragmentation)
- 전송을 보장하지 않는 신뢰할 수 없는(unreliable) 프로토콜이자, 사전 연결 과정이 없는 비연결형(connectionless) 프로토콜
IP 주소
- 네트워크상에서 호스트를 식별하기 위한 32비트(IPv4) 주소
- 네트워크 주소와 호스트 주소로 나뉨
주소 체계
- 클래스풀 주소 체계: 네트워크 크기에 따라 A, B, C 클래스로 나누어 관리했지만 주소 낭비 문제가 있었음.
- 클래스리스 주소 체계 (CIDR): 서브넷 마스크를 사용하여 네트워크와 호스트 부분을 유연하게 구분하는 방식
공인 IP와 사설 IP
- 공인 IP: 전 세계에서 유일한 주소
- 사설 IP: LAN과 같은 내부 네트워크에서만 사용되는 주소
- NAT 기술을 통해 사설 IP가 공인 IP로 변환되어 인터넷과 통신
IP 주소의 할당
- 정적 할당: 수동으로 IP 주소를 직접 설정
- 동적 할당: DHCP 프로토콜을 통해 자동으로 IP 주소를 할당받음.
관련 프로토콜
- ICMP: IP의 비신뢰성을 보완하기 위한 프로토콜로, 패킷 전송 과정에서 발생하는 오류 보고나 네트워크 진단 정보를 제공
- ARP: 동일 네트워크 내에서 IP 주소를 통해 상대방의 MAC 주소를 알아내기 위한 프로토콜
4. 전송 계층 - TCP와 UDP
호스트 내에서 실행되는 특정 프로세스까지 데이터를 전달하는 역할을 한다.
포트(Port)
- 하나의 호스트에서 실행 중인 여러 프로세스를 구분하기 위한 번호
- IP 주소와 포트 번호의 조합으로 특정 프로세스를 식별
TCP (Transmission Control Protocol)
- 신뢰성 있는 연결형 프로토콜
TCP의 주요 특징
- 3-way 핸드셰이크: 데이터 전송 전, SYN과 ACK 패킷을 주고받으며 연결을 수립함.
- 오류/흐름/혼잡 제어:
- 재전송을 통한 오류 제어
- 수신 측의 처리 속도에 맞추는 흐름 제어
- 네트워크 혼잡 상황에 따라 전송량을 조절하는 혼잡 제어 기능을 제공함.
- 4-way 핸드셰이크: 데이터 전송 후, FIN과 ACK 패킷을 주고받으며 연결을 종료함.
UDP (User Datagram Protocol)
- 비신뢰성, 비연결형 프로토콜
- 신뢰성 보장을 위한 기능이 없어 TCP보다 빠르지만, 데이터 유실이나 순서 변경이 발생할 수 있음.
5. 응용 계층 - HTTP의 기초
사용자와 가장 밀접한 계층으로, 다양한 네트워크 서비스를 제공한다.
DNS (Domain Name System)
www.example.com과 같은 도메인 네임을 실제 IP 주소로 변환해주는 시스템이자 프로토콜
URI/URL
- URI (Uniform Resource Identifier): 웹상의 자원(HTML, 이미지 등)을 식별하기 위한 통일된 방식
- URL (Uniform Resource Locator): 자원의 '위치'를 기반으로 식별하는 방식으로, URI의 한 종류
HTTP (Hypertext Transfer Protocol)
웹에서 클라이언트와 서버가 자원을 주고받기 위한 프로토콜
HTTP의 주요 특징
- 요청-응답 기반: 클라이언트가 요청 메시지를 보내면 서버가 응답 메시지를 보냄.
- 스테이트리스(Stateless): 서버가 클라이언트의 이전 요청 상태를 기억하지 않음.
- 지속 연결: 하나의 TCP 연결 위에서 여러 요청과 응답을 주고받을 수 있음. (HTTP/1.1 이상)
- HTTP 메시지 구조: 시작 라인(요청/상태 라인), 헤더, 메시지 본문으로 구성됨.
6. 응용 계층 - HTTP의 응용
HTTP의 기능을 확장하고 보완하는 다양한 기술들이다.
쿠키(Cookie)
- 서버가 클라이언트에 저장하는 작은 데이터 조각
- HTTP의 스테이트리스(stateless) 특성을 보완하여 사용자 상태(로그인 정보 등)를 유지하는 데 사용됨.
캐시(Cache)
- 자주 요청하는 자원을 미리 저장해두었다가 재사용하여 응답 속도를 높이고 네트워크 부하를 줄이는 기술
콘텐츠 협상
- 하나의 URL에 대해 클라이언트가 선호하는 언어, 인코딩 방식 등에 따라 서버가 가장 적절한 버전의 자원을 제공하는 기술
보안: SSL/TLS와 HTTPS
- HTTPS: HTTP에 보안 계층인 SSL/TLS를 추가하여 통신 내용을 암호화하는 프로토콜
- SSL/TLS 핸드셰이크: 클라이언트와 서버가 암호화 통신을 시작하기 전에 암호화 방식, 키 등을 교환하는 과정
7. 프록시와 안정적인 트래픽
클라이언트와 서버 사이에서 중개 역할을 하는 서버 및 관련 기술들이다.
프록시 서버
- 클라이언트와 서버 사이에서 요청과 응답을 중개하는 서버
가용성(Availability)
- 시스템이 중단 없이 정상적으로 운영되는 시간의 비율을 의미
로드 밸런싱(Load Balancing)
- 여러 서버에 들어오는 트래픽을 분산시켜 특정 서버의 과부하를 막고 시스템 전체의 안정성을 높이는 기술
스케일링(Scaling)
- 시스템의 처리 용량을 늘리는 것
- 스케일 업: 서버 성능 향상
- 스케일 아웃: 서버 대수 증가
기술 면접 질문
- TCP와 UDP의 차이점을 설명해주세요.
- 3-way 핸드셰이크와 4-way 핸드셰이크에 대해 설명해주세요.
- HTTP와 HTTPS의 차이점을 설명해주세요.
- 쿠키와 세션의 차이점을 설명해주세요.
이 글은 『 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접』 책을 읽고 학습한 내용을 정리한 것입니다.
'학습일지 > CS' 카테고리의 다른 글
| [스터디11] 5. 데이터베이스 (0) | 2025.09.05 |
|---|---|
| 4. 비동기 연동, 언제 어떻게 써야 할까? (0) | 2025.08.30 |
| [스터디11] 3. 자료구조 (5) | 2025.08.22 |
| [스터디11] 2. 운영체제 (5) | 2025.08.07 |
| 3. 외부 서비스 연동 안정성: 타임아웃, 재시도, 서킷 브레이커 (2) | 2025.08.06 |
Comments
