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
- binary data to struct
- 앱출시
- swift 바이트 버퍼
- ByteBuffer
- swift 소켓 데이터
- universal link
- 사이드프로젝트
- SWIFT
- 딥링크
- swift 바이너리 데이터
- RxSwift
- swift 소켓통신
- 포트폴리오
- 클린아키텍쳐
- clean architecture
- ios binary data
- iOS 아키텍쳐
- IOS앱개발
- SOCKET
- swift bytebuffer
- 의존성 주입
- Dependency Injection
- mvvm
- 유니버셜링크
- DeepLink
- deferred deeplink
- swift-nio
Archives
- Today
- Total
hyunn
면접을 위한 CS 전공지식 노트 - 네트워크 본문
네트워크란?
노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합
좋은 네트워크란?
많은 처리량을 처리할 수 있으며, 지연 시간이 짧고, 장애 빈도가 적으며, 좋은 보안을 갖춘 네트워크이다.
네트워크 토폴로지
노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태
- 트리 토폴로지 : 계층형
- 버스 토폴로지 : 중앙 통신 회선 하나에 여러 개의 노드가 연결
- 스타 토폴로지 : 중앙에 있는 노드에 모두 연결된 네트워크 구성
- 링형 토폴로지 : 각각의 노드가 양 옆의 두 노드와 연결
- 메시 토폴로지 : 그물망 형태
병목 현상
전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한 받는 현상
네트워크 계층 구조
- TCP/IP 4계층
애플리케이션 계층 - 전송 계층 - 인터넷 계층 - 링크 계층
- OSI 7계층
애플리케이션 계층 - 프레즌테이션 계층 - 세션 계층 - 전송 계층 - 네트워크 계층 - 데이터 링크 계층 - 물리 계층
- 애플리케이션 계층 : 프로토콜 계층 (FTP, HTTP, SSH, SMTP, DNS)
FTP : 파일 전송 통신 프로토콜
SSH : 암호화 네트워크 프로토콜
HTTP : 웹을 위한 데이터 통신 프로토콜
SMTP : 전자 메일 전송 통신 프로토콜
DNS : 도메인 이름과 IP 주소를 매핑해주는 서버
- 전송 계층 : 송신자와 수신자 연결 (TCP, UDP)
TCP : 패킷 사이의 순서 보장, 연결지향, 가상회선 패킷 교환 방식 사용
UDP : 패킷 사이의 순서 보장 x, 수신 여부 확인 x, 단순히 데이터만 주는 데이터그램 패킷 교환 방식 사용
- 인터넷 계층 : 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층 (IP, ARP, ICMP)
- 링크 계층 : 전선, 광섬유, 무선 등으로 실질적으로 데이터 전달
HTTP
HTTP는 애플리케이션 계층으로서 웹 서비스 통신에 사용된다.
HTTP/1.0
한 연결당 하나의 요청을 처리하도록 설계되어 있다.
- 단점
RTT 증가 (RTT란? 패킷 왕복 시간)
- 단점 극복 방법
이미지 스플리팅, 코드 압충, 이미지 Base64 dlszheld
HTTP/1.1
한번 TCP 초기화를 한 이후에 keep-alive 옵션으로 여러 개의 파일을 송수신할 수 있다.
- 단점
HOL Blocking (같은 큐에 있는 첫번째 패킷이 지연될 때 발생하는 성능 저하 현상), 무거운 헤더 구조 (압축이 되지 않았음)
HTTP/2
멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜
- 멀티플랙싱 : 여러 개의 스트림을 사용하여 송수신
- 서버 푸시 : 클라이언트 요청 없이 서버가 바로 리소스를 푸시할 수 있음
HTTP/3
TCP가 아닌 QUIC라는 계층 위에서 돌아가며, UDP 기반으로 돌아간다.
- 장점
3-웨이 핸드셰이크 과정을 거치지 않으므로 초기 연결 설정 시 지연 시간이 감소한다.
HTTPS
애플리케이션 계층과 전송 계층 사이에 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청
- SSL/TLS : 보안을 제공하는 프로토콜, 보안 세션을 기반으로 데이터를 암호화하며 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.
해싱 알고리즘
데이터를 추정하기 힘든 더 작고, 섞여 있는 조각으로 만드는 알고리즘
ex. SHA-256, SHA-384
SEO
검색엔진 최적화를 뜻하며, 사용자들이 검색엔진으로 웹사이트를 검색했을 때, 그 결과를 상단에 노출시킬 수 있도록 최적화하는 방법
- 방법
캐노니컬 설정, 메타 설정, 페이지 속도 개선, 사이트맵 관리
* 참고 용어
- 브로드캐스트 : 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식
- 유니캐스트 : 고유 주소로 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식
- 라우팅 : IP 주소를 찾아가는 과정
- 게이트웨이 : 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어
- 해시 : 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값
- 해싱 : 임의의 데이터를 해시로 바꿔주는 일
- 해시 함수 : 임의의 데이터를 입력으로 받아 일정한 길이의 데이터로 바꿔주는 함수
'Book' 카테고리의 다른 글
면접을 위한 CS 전공지식 노트 - 자료 구조 (0) | 2025.02.28 |
---|---|
면접을 위한 CS 전공지식 노트 - 운영체제 (0) | 2025.02.27 |
면접을 위한 CS 전공지식 노트 - 디자인 패턴과 프로그래밍 패러다임 (0) | 2025.02.17 |