네트워크
OSI 7계층
1 - 물리 계층
- 리피터, 케이블, 허브
- 데이터를 전기적 신호로 변환하여 주고받는 역할
2 - 데이터 링크 계층
- 브릿지, 스위치
- 물리계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할 (프레임에 MAC 주소 부여)
MAC 주소: 48bit, 물리적 주소, 제조사에서 부여한 고유 번호
ip주소: 32bit, 논리적 주소, 네트워크 환경에 따라 유동적 번호
3 - 네트워크 계층
- 라우터를 통해 이동할 경로를 선택하여 IP주소를 지정하고, 해당 경로에 따라 패킷을 전달해주는 역할
- 라우팅, 흐름제어, 세그먼테이션, 오류제어
4 - 전송 계층
- TCP, UDP 프로토콜을 통해 통신을 활성화하는 역할
- TCP: 신뢰성, 연결지향적, 분실중복순서 자동보정
- UDP: 비신뢰성, 비연결성, 실시간, 신속
5 - 세션 계층
- TCP/IP 세션을 생성/삭제의 책임 역할, 논리적 연결을 담당
- API, Socket
6 - 표현 계층
- 데이터 표현 암호화 역할
- JPEG, MPEG, 파일 인코딩
7 - 응용 계층
handshake
TCP는 정확환 전송을 보장해야 함!
- 클라이언트 -> 서버 SYN 패킷
- 서버가 SYN 받고,
서버 -> 클라이언트 ACK,SYN 패킷
- 클라이언트가 두 패킷을 받고,
클라이언트->서버 ACK(y+1) 패킷
- 클라이언트 -> 서버 FIN 플래그
- 서버 -> 클라이언트 ACK 패킷
- 데이터 모두 전송이 끝났으면,
서버 -> 클라이언트 FIN 플래그
- 클라이언트 -> 서버 ACK 패킷
대칭키/공개키
대칭키
- 암호화와 복호화에 같은 암호키를 사용하는 알고리즘
- 빠른 속도
- 키 전달과정에서 해킹 위험이 있음
공개키(비대칭키)
- 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘
- 고유한 암호키로 복호화할 수 있는 공개키를 공개함
SSL
- Secure Socket Layer
- 웹 서버와 클라이언트의 통신 암호화 프로토콜
- ssl 사용 시
https:// 로 시작
HTTP/HTTPS
HTTP
- hypertext transfer protocol
- 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약
HTTPS
- hypertext transfer protocol secure
- 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약인데 SSL 프로토콜을 사용하여 텍스트를 암호화함
- CA 기업에게 공개키 관리를 부탁
참고 : https://github.com/gyoogle/tech-interview-for-developer