1장 네트워크 기초 지식
- 네트워크의 역할은 애플리케이션끼리 데이터를 주고받을 수 있도록 하는 것이다.
- 통신 프로토콜이 규정하고 있는 것은 '데이터 형식'과 '통신 절차' 이다.
- 데이터 형식 : 주고 받을 데이터가 어떤 형식일지 결정.
- 통신 절차 : 어떤 절차로 무엇을 주고받을지 결정한다. - 통신 프로토콜은 조합해서 사용하는 것이 일반적이다.
- 여러개의 프로토콜이 모여서 전체 통신 절차를 결정하는 것이 일반적이다. - 통신 프로토콜은 레이어의 구조이다.
- 보다 공통적인 기능은 아래층의 레이어에 두고 더 개별적인 기능을 위에 더서 상위의 기능이 하위의 기능을 이용하는 형태가 일반적이다.
- 레이어의 구조는 교체하기가 쉽다. 규칙을 돌려쓸수 있다. - OSI 참조모델
- OSI(Open System Interconnection) 참조 모델은 컴퓨터 네트워크에서 필요로 하는 기능을 일곱 개의 계층을 이용해서 정리한 것이다.
응용 계층 | 구체적인 통신 서비스를 구현한다.(메일, Web등) |
표현 계층 | 데이터 표현방식을 상호 변환한다. |
세션 계층 | 통신의 시작부터 종료까지의 절차를 구현한다. |
전송 계층 | 신뢰도 향상 등 용도에 따른 특성을 구현한다. |
네트워크 계층 | 중계 등에 의한 임의의 기기간의 통신을 구현한다. |
데이터 링크 계층 | 직접 접속된 기기간의 통신을 구현한다. |
물리 계층 | 커넥터 모양이나 핀 개수 등 물리적인 접속을 결정한다. |
- OSI 참조 모델처럼 어떤 사고방식이나 구성으로 네트워크를 만들어낼지 여부와 같은 기본적인 체계를 '네트워크 아키텍처'라고 한다.
- LAN -> 거점 한군데 내의 네트워크
- WAN -> 거점과 거점을 연결하는 네트워크
- 여러개의 WAN 과 LAN이 모인것이 인터넷
- 패킷교환 -> 주고받고자 하는 데이터를 패킷이라고 불리는 작은 크기의 데이터로 작게 나눠서 이걸 공용 통신회선을 통해서 운반한다.
- 회선을 모두 공용으로 사용하므로 특정 기간에 사용하지 않을 때는 다른 이의 패킷을 전송할 수 있으므로 이용효율을 높일 수 있다. - 패킷 -> 한 묶음의 데이터를 작게 나눠서, 작은 크기로 분할한 것.
헤더 + 페이로드
전송처 등 / 작게 나눈 데이터
- 작게 나눈 데이터의 앞에 전송처 등의 정보를 포함한 헤더를 붙여서 패킷 한 개를 구성한다.
2장 TCP/IP 기초지식
- TCP/IP -> 인터넷을 비롯한 컴퓨터 네트워크에서 널리 이용되는 통신 프로토콜이다. TCP(Transmission Control Protocol) 과 IP(Internet Protocol)의 세트
- TCP/IP는 네 개의 레이어로 구성되며 각각 여러 가지 프로토콜이 결정되어 있다.
애플리케이션층 | 구체적인 통신 서비스를 구현한다(메일, Web 등) | HTTP, SMTP, POP3등 다수 |
트랜스포트층 | 고신뢰로 등 목적에 맞는 통신 품질을 구현한다. | TCP, UDP등 |
인터넷층 | 중계 등에 의해 임의의 기기간의 통신을 구현한다. | IP, ICMP등 |
네트워크 인터페이스 층 | 직접 접속된 기기간의 통신을 구현한다. | 이더넷, ARP/RARP 등 |
- TCP -> 데이터의 확인이나 재전송 등을 수행하며 신뢰도가 높은 통신을 구현하는 프로토콜이다. 슬라이딩 윈도우 구조를 사용해서 UDP에 비해 속도가 느리나 신뢰도 높은 정보를 제공할수 있다.
- 웹 서버 접속처럼 누락되면 곤란한 경우 이용 - UDP -> 통신을 가볍게 처리하도록 해서 실시간 성격이 큰 통식을 구현한다. 영상이나 전화등을 전송할때 이용하며 중간에 끊기는 현상이 생길수 있다. 그러나 속도가 빠르다.
- 영상이나 음원 스트리밍에 사용
애플리케이션은 각 층의 프로토콜을 조합해서 사용한다.(용도에 따라 조합할 프로토콜이 다르다.)
Web 서버로 전송 | 동영상 시청이나 인터넷 전화 | |
애플리케이션 층 | HTTP | RTP(동영상이나 음원 스트리밍에 사용하는 프로토콜) |
트랜스포트 층 | TCP | UDP |
인터넷 층 | IP | IP |
네트워크 인터페이스 층 | 인터넷 | 인터넷 |
- OSI는 네트워크 아키텍처를 통일할 목적으로 만들어 졌지만 너무 복잡해서 일반화 되어있지 않다. 대신 TCP/IP가 널리 사용되고 있다.
- 신뢰도를 높이기 위해 TCP가 하는 일
1. 부여된 데이터 순서의 보증(시퀀스 번호)
2. 수신 데이터의 오류 존재 여부에 대한 확인(오류 검증)
3. 상대가 확실히 수신했는지 여부 확인(긍정 확인 응답)
4. 수신받지 못한 데이터의 재전송 요청(슬라이딩 윈도우)
5. 상대의 페이스에 맞춘 데이터 전송(흐름 제어)
6. 네트워크의 혼잡 상황에 따른 송신 속도의 조정(혼잡 제어) - 슬라이딩 윈도우 프레임 내의 데이터는 수신확인을 기다리지 않고 송신한다. 수신확인이 도착하면 오른쪽으로 옮겨가면서 다음 데이터를 송신한다.
- TCP는 3-웨이 핸드쉐이크라고 불리는 방법을 체택한다.
통신을 시작할 때 | 통신을 종료할 때 |
SYN을 보낸다 | FIN을 보낸다 |
ACK + SYN을 받는다 | ACK + FIN을 받는다 |
ACK를 보낸다 | ACK를 보낸다 |
- 애플리케이션층의 주요 프로토콜
HTTP | Web에 접속한다. 모바일 애플리케이션 통신 등에 사용한다. |
SMTP | 메일 송신이나 서버간의 전송을 한다. |
POP3 | 메일함에서 메일을 꺼낸다. |
IMAP4 | 메일함의 메일을 읽는다. |
FTP | 파일을 전송한다. |
SSH | 문자 기반으로 서버등에 명령을 하고 결과를 본다. |
DNS | 도메인명과 IP주소를 상호 변환한다. |
NTP | 컴퓨터의 시간을 맞춘다. |
- 전송하는 측의 처리와 헤더 추가
- 포트 번호에 따라 컴퓨터 내의 여러 서비스를 구별할 수 있다.
포트번호 | 프로토콜 | 주요용도 |
80 | HTTP | Web 접속 |
443 | HTTPS | 암호화된 Web 접속 |
110 | POP3 | 메일함 읽기 |
143 | IMAP4 | 메일함 접속 |
25 | SMTP | 서버 간의 메일 전송 |
587 | SMTP submission | 컴퓨터에서 메일서버로 메일 전송 |
20 | FTP data | 파일 전송(데이터 전송용) |
21 | FTP control | 파일 전송(제어용) |
- 클라이언트측의 포트번호는 OS가 잘 알려진 포트이외의 번호를 자동으로 할당 한다.
- 라우터는 네트워크의 중심적인 역할을 담담하는 기기다. 서로 독립되어 있는 이더넷 네트워크 사이에서 양쪽의 패킷(정보)을 중계하는 것. 네트워크층의 범위에서 동작한다.
MAC(Media Access Control address) 주소는 네트워크 하드웨어에 하나씩 할당되어 있는 주소
예전에는 연결되어 있는 전체에게 동일한 데이터를 보내고 MAC주소가 자신의 주소에 맞을 시에만 수신하는 방식으로 하였다.
현재는 허브/스위치에서 어떤 포트에 어떤 MAC 주소를 가지고 있는지 가지고 있어서 해당하는 MAC 주소의 포트에 정보를 보내준다.
라우팅 - 라우터로 패킷을 전송하는 것
라우터는 패킷을 받으면 그 수신처로 표시돼있는 IP 주소에 서브넷마스크를 적용해서 네트워크 주소를 추출한다. 그리고 라우팅 테이블에서 그 네트워크에 관한 규칙을 찾는다. 규칙을 찾으면 그 규칙에 따라 전송한다. 전송 처리를 여러 대의 라우터가 반복함으로써 패킷은 목적지인 컴퓨터까지 도달하게 된다.
기본게이트웨이 -> 보낼곳을 모르는 때에 우선 전송해두는 곳
네트워크 구성이 변하면 라우터 테이블 갱신 필요
-> IP 네트워크에서는 패킷으 전송을 제어하는 라우팅 테이블이 매우 중요한 역할을 담당한다.
정적 라우팅 -> 전부 수동으로 경로를 추가해주는 라우팅 방식, 소규모에 적합
동적 라우팅 -> 라우터끼리 라우터 정보를 서로 교환하는 동적 라우팅, 대규모에 적합
동적 라우팅을 라우터끼리 정보를 교환하게 된다. 이때 경로끼리의 비교를 통해 최적의 경로를 선택하는 것이 중요.
1. 단순히 통신하는 라우터의 수가 적은 경우를 선택 -> RIP/RIP2 등
2.도중에 통신하는 네트워크의 속도 등도 고려해서 선택 -> OSPF
라우팅 프로토콜을 크게 나눠서 IGP/ EGP 로 나타낼수 있다.
AS(Autonomous System: 자율시스템) -> 약간 LAN과 비슷한 느낌
AS내의 라우팅 정보를 교환하는 것을 IGP / AS끼리 라우팅 정보를 교환하는 것을 EGP
이더넷은 전세계에서 폭넓게 이용되고 있는 네트워크(하드웨어와 통신 방식) 규격이다. 최근 컴퓨터에 탑재되어 있는 유선 네트워크 인터페이스는 거의 100%가 이더넷이라고 봐도 된다.
VLAN(Virtual LAN) -> 물리적으로는 한 개의 네트워크를 논리적으로 여러 개의 네트워크로 분할하는 기술을 VLAN(Virtual LAN)이라고 한다. 이를 사용하면 LAN 하나에 여러 개의 논리적인 LAN을 만들 수 있다.
VPN(Virtual Private Network)은 인터넷 등 기존 네트워크 내에 새로운 가상 네트워크를 만드는 기술이다.
하이퍼텍스트의 개념
- 하이퍼텍스트에는 문서 내에 하이퍼링크라고 불리는 다른 문서에 대한 참조 정보가 들어 있다. 이 하이퍼링크를 따라가면 여러 개의 문서를 연관 지어서 전체적으로 거대한 정보를 나타낼수 있다.
HTTPS와 SSL/TLS
- HTTPS는 특정 프로토콜이 정해져 있지 않고 SSL(Secure Sockets Layer)/TLS(Transport Layer Security)이라고 불리는 프로토콜이 만들어내는 안전한 연결방법을 사용하고 이를 기반으로 HTTP에 따른 통신을 한다. 그 때문에 HTTP가 갖고 있는 간단하면서 범용성이 높은 특징이 그대로 반영되어 있다.
SSL/TLS 개요
- SSL/TLS는 대상의 특정 (인증)이나 암호키(key) 교환, 정보의 암호화에 사용하는 각 알고리즘(처리방법)을 여러 개 중에서 선택한다. 이 중 어떤 알고리즘을 사용하는가는 통신의 초기 단계에서 서버와 클라이언트가 서로 대화하여 상호 공통으로 대응할 수 있는 것을 선택한다. 이걸 교섭 이라 한다.
SSH 개요
- 서버나 네트워크 기기에 접속해서 대상을 CUI로 조작하는 데 사용하는 프로토콜 및 그걸 하기 위한 프로그램의 명칭
- SSH를 사용하면 도청에 따른 정보 누출을 방지할 수 있다.
- 조작 대상에 대한 로그인 방법으로 ID와 암호를 입력하는 전통적인 방법 외에 공개 키 인증이라고 불리는 보다 안전한 방법을 지원하고 있다. 공개 키 인증을 사용하려면 미리 자신의 인증 정보를 포함한 공개 키와 비밀 키를 만들어두고 로그인한 대상에게 공개 키를 넣어둔다. 그리고 대상이 로그인할 때 짝이 되는 비밀 키를 사용해서 로그인한다.
- 로그인하는데 반드시 비밀 키가 필요하므로 기계적인 방식으로 맞춰보고 돌파할 우려가 없다.
DNS
프록시
- 중계용 컴퓨터를 사이에 두고 통신 내용을 전하는 컴퓨터를 일반적으로 프록시(proxy)라고 부른다.
- 콘텐츠의 캐시(요청이 올시에 이전에 같은내용이 있다면 web에 접속이 아니라 캐시에 있는 내용을 보여준다)
- 바이러스 검출이나 부정 침입 방지
- 유해사이트 차단
사진이 있는 웹페이지가 표시가 되려면 먼저 html만 전달 받고 이후에 개별 사진마다 http요청이 간다.
이는 http요청이 한번에 한개의 요소만 취하므로 발생하는 상황이다.
암호화
정보를 암호로 만들(암호화) 때나 정보를 원래대로 되돌릴(복호화) 때에는 암호 알고리즘과 암호키를 사용한다.
공통키 암호
- 데이터 암호화와 복호화에 동일한 키를 사용하는 것
공개키 암호
- 쌍을 이루는 공개키 와 비밀키를 사용한다. 사람들에게 알려줘도 되는 공개키로 암호화를 진행하고 쌍을 이루는 개인만이 알고있는 비밀키로 복호화를 진행한다.
트러블 슈팅, 핑
ping 명령어는 어떤 컴퓨터에서 IP 주소를 가진 네트워크 기기나 서버에 대해 ICMP ECHO 패킷을 보내서 기기가 이에 대해 응답을 되돌려주는지 여부를 조사하는 명령어다.
'책' 카테고리의 다른 글
인생은 멈추지 않는다 (0) | 2020.07.07 |
---|---|
내가 공부하는 이유 (0) | 2020.07.07 |
커리어 스킬 (0) | 2020.06.24 |
창작자들 (0) | 2020.06.23 |
한국의 스타트업 부자들 (0) | 2020.06.22 |