(클릭 후 이동하기)
이번 포스트는 깃허브에서 마크다운 버전으로도 확인 가능 합니다.
[ 전문서적 핵심정리 ]"그림으로 배우는 네트워크 원리" 책 - by 영진닷컴
- 이 책은 추천을 받아서 학습한 책이며
- 이후 공유하고자 핵심 내용들을 정리해보았습니다.
- 아래 내용들을 "이미" 알고 계시는 분들은 이번 내용으로 복습한다 생각하시고 훑고나서 다른 책을 읽는 것을 추천드립니다.
목차
- 1장 : 네트워크의 기본
- 2장 : 네트워크를 만드는 것
- 3장 : 네트워크의 공통 언어 TCP/IP
- 4장 : 웹사이트의 동작 원리
- 5장 : 이더넷과 무선 LAN
- 6장 : 라우팅
- 7장 : 네트워크 보안 기술
- 마치며
1장 네트워크의 기본
네트워크를 이용함으로써
- PC나 스마트폰, 서버 등을 네트워크에 접속함으로써 데이터를 주고받을 수 있게 된다.
- 네트워크는 정보 수집이나 커뮤니케이션 효율화 등 다양한 목적을 위해 이용된다.
누가 이용할 수 있는 네트워크인가라는 사용자 관점에서 다음 2가지로 분류가능.
- 사용자를 제한하는 사설 네트워크 : 회사나 가정내로 접속할 수 있는 사용자를 제한한다.
- 누구나 이용할 수 있는 인터넷. : 인터넷은 접속할 수 있는 사용자를 제한하지 않는 네트워크다.
사내 네트워크 구성
- LAN : Local Area Network
- WAN : wide Area network
- 각 거점, 인천지사, 서울본사 내에서 통신이가능한게 LAN
- LAN 끼리 서로 연결하는것이 WAN
- 거점 내네트워크가 LAN 이고 LAN 끼리 연결하는 것이 WAN
- LAN은 직접 구축 및 관리
- WAN 는 NTT와 같은 통신사업자가 구축하고 관리.
- 사내 네트 워크는 LAN 과 WAN 으로 구성된다.
- LAN 은 거점 내 네트워크를 말하며, 직접 구축하고 관리할 필요가 있다.
- 통신사업자가 제공하는 WAN 서비스로 거점이 되는 LAN 끼리 연결할 수 있다.
인터넷은 다양한 조직이 관리하는 네트워크가 연결된 것.
- AS : Autonomous System
ISP / internet service provider
- NTT 커뮤니케이션즈와 같은
- ISP 상위 그룹 을 Tier1 라고 하며 인터넷 상의 모든 ISP 는 Tier1을 경유해서 연결된다.
- 인터넷은 다양한 조직의 네트워크인 AS가 서로 연결되어 있다.
- AS의 예는 인터넷 접속 서비스를 제공하는 ISP이다.
- 인터넷 접속 서비스에 따라, 고정회선이나 모바일 회선으로 ISP와 접속해 인터넷을 이용한다.
애플리케이션
- 데이터를 주고받는 주체
- 클라이언트와 서버로 분류
- 데이터 통신은 양방향, 요청 > 응답
- 통신방식에따라
- 피어투피어 어플리케이션
- 클라이언트-서버 어플리케이션으로 분류된다.
네트워크 아키텍처
- 언어로 대화하는 것처럼 컴퓨터 통신에서는 네트워크 아키텍처를 이용합니다.
- 예.... TCP/IP , OSI, MicrosoftNetbeui
네트워크의 대부분은 TCP/IP를 이용한다.
- 역할별로 네 가지로 계층화된 복수의 프로토콜을 조합
- 애플리케이션 HTTP, SMTP, POP3, IMAP4, DHCP, DNS 등....
- 프랜스포트층 TCP/UDP
- 인터넷층 IP, ICMP, ARP
- 네트워크 인터페이스층 이더넷, 무선 LAN, PPP 등
- 통신하기 위한 데이터 형식 등의 규칙을 프로토콜이라고 부른다.
- 복수의 프로토콜을 조합한 네트워크 아키텍처에 기반하여 통신한다.
- 현재는 네트워크 아키텍처 중 TCP/IP를 이용한다.
서버 운용-관리
- 직접 서버를 운용관리하는 기존 서버 운용방법은 온프레미스라고 한다.
- 클라우드 서비스는
- 인터넷을 통해 서버의 기능을 이용한다.
- 사업자가 서버를 도입하고 운용 및 관리한다.
- 보안이나 가용성에 주의가 필요하다.
클라우드 서비스의 분류
- Iaas 하드웨어 / Infrastructure as a service
- 네트워크를 경유해 CPU, memory 저장장치, 와 같은 하드웨어를 이용.
- 사용자는 OS, 미들웨어, 애플리케이션을 추가
- PaaS 플랫폼
- 네트워크를 경유해 서버 플랫폼이용
- 플랫폼이란 OS와 OS상에서 동작하는 데이터베이스 등의 미들웨어를 포함한 부분
- SaaS 어플리케이션
2장 네트워크를 만드는 것
- 클라우드 아이콘으로 표현하는 네트워크의 규모는 전후의 문맥에 달려있다.
규모
- 가정 내 네트워크는 PC, 스마트폰, 가전제품 몇대
- 기업내 몇십대의 PC
- 그리고 인터넷 전체를 나타내는 것은 몇십 억대의 기기.
네트워크의 구체적인 구성을 추상화해, 클라우드 아이콘으로 네트워크를 표현할 수 있다.
네트워크를 구성하는 기기
- 라우터
- 레이어2 스위치
- 레이어3 스위치
데이터 전송처리 단계
- 데이터 수신 : 전기신호 등 물리적 신호로 변환된 데이터를 원래 디지털신호 0,1로 되돌린다.
- 데이터 보낼곳을 결정 : 데이터에 부가된 제어 정보를 참조하여 전송할 곳을 결정한다.
- 데이터 전송 : 데이터를 물리적 신호로 변환해서 내보낸다. 필요하면 제어 정보를 고쳐쓴다.
네트워크의 구체적인 구성
- 인터페이스 : 네트워크, PC, 서버등을 연결하기 위해 각 기기별 인터페이스가 갖추어져있다.
- 일반적으로이더넷 인터페이스
- 이더넷 인터페이스는 이더넷 포트나 LAN 포트로도 불립니다.
전송 매체와 링크
- 인터페이스 끼리 링크/연결합니다. 인터페이스를 서로 연결하는 케이블을 전송 매체라고 합니다.
네트워크
- 인터페이스는 경계라는 의미
- 네트워크 인터페이스는 0,1으로 이루어진 디지털 데이터 또는 전기신호와 같은 물리적 신호의 경계
- PC, 서버 , 네트워크 기기에는 네트워크에 접속하기 위한 인터페이스가 갖추어져있다.
- 인터페이스 끼리 전송 매체 (케이블, 또는 무선 등)으로 연결하고 링크를 구성해서 네트워크를 만든다.
- 인터페이스는 0과 1의 디지털 데이터와 물리적인 신호의 경계다.
LAN의 구축
- 규모의 차이가 있을 뿐, 가정 네트워크든 기업 네트워크든 같습니다.
- LAN을 구축하는 주요기술은 다음 두 가지
- 이더넷
- 무선 LAN(Wi-Fi)
- 이더넷 인터페이스를 갖춘 기기의 이더넷 인터페이스끼리 연결해서 LAN을 구축한다.
- 무선 LAN 인터페이스를 갖춘 기기끼리 무선 LAN 링크를 만든다.
네트워크를 설계하는 주요 프로세스
- 요건정의 - 설계 - 구축 - 운용관리
네트워크 구성도
- 논리구성도의 핵심은 몇개의 네트워크가 레이어3 스위치로 연결되는지 파악하기 쉽게 정리
- 물리구성도의 핵심은 어느기기의 어느 인터페이스가 어떠한 캐이블로 배선되는지 파악하기 쉽게 정리하는 것.f
***레이어2 스위치 여러개가 레이어 3스위치에 연결된다.
3장 네트워크의 공통언어 TCP/IP
TCP/IP
- 기기 사이의 통신규칙이 프로토콜
- 프로토콜의 조합이 네트워크 아키텍처이며 TCP/IP가 대표적임.
TCP/IP의 구조
- 어플리케이션층
- 어플리케이션에서 다룰 데이터 형식과 절차를 결정한다.
- 트랜스포트층
- 에플리케이션에 데이터를 할당한다.
- 인터넷층
- 엔드투엔드 통신을 한다
- 네트워크 인터페이스 층
- 프로토콜은 자유롭게 선택할 수 있다. 통신 상대와 같은 것을 사용할 필요는 없다.
계층별 설명
- 각 계층에 포함되어있는 프로토콜을 조합해 애플리케이션이 통신한다.
데이터를 전송하는 역할을 하는 계층
네트워크 인터페이스 층
- 역할은 같은 네트워크 안에서 데이터를 전송하는 것
- 기술적인 관점에서 말하자면,
- 하나의 네트워크는 라우터와 레이어 3스위치로 구획되는 범위
- , 또는 레이어 스위치로 구성하는 범위
인터넷층
- 네트워크 사이에서 데이터를 전송한다.
- 원격지 네트워크에서 출발후 도착하는 것을 엔드투엔드 통신이라고 부릅니다.
- IP = 엔드투엔드
- ICMP 와 ARP 는 IP 를 도와주는 프로토콜
애플리케이션의 동작을 준비하는 계층
트랜스포트 층
- 데이터를 적절한 애플리케이션에 배분하는 것
- TCP는 엔드투엔드의 신뢰성을 확보해주는 기능이 있다.
- 트랜스포트층의 역할은 적절한 애플리케이션으로 데이터를 배분한다.
애플리케이션 층
- 애플리케이션의 기능을 실행하기 위한 데이터의 형식과 처리 절차 등을 결정하는 것입니다.
- 단순 0과 1이 아니라 문자와 이미지 등 인간이 인식할 수 있도록 데이터를 표현합니다. 기본적으로 인간은 애플리케이션을 다루기 때문입니다.
- 애플리케이션층에 포함된 프로토콜은
- http smtp pop3 dhscp dns등등 많이 있습니다.
- http 는 브라우저에서 사용된다.
- smtp와 pop3 는 outlook thunderbird와 같은 전자메일
데이터 송수신 규칙
- TCP/IP에서는 4개의 프로토콜을 조합
- 각 프로토콜에는 각각의 기능을 실현하기 위한 제어정보(헤더)가 필요합니다.
- 헤더에는 출발지와 도착지 주소가 지정됩니다.
캡슐화
- 각 프로토콜은 데이터 전송시 헤더 추가
- 헤더로 데이터를 포장한다고 보면 된다.
역캡슐화
- 추가된 데이터를 보고 프로토콜의 처리를 하고, 헤더를 제거해 다른 프로토콜에 처리를 넘기는 것
데이터 송신측은 TCP/IP 계층을 위에서부터 아래로 따라가며 각 프로토콜 헤더를 추가한다.
중간점검
- 어플리케이션층 HTTP
- 트랜스포트층 TCP
- 네트워크 인터페이스층 IP
- 이더넷층
데이터 전송 절차
- 0과1로 데이터를 되돌려서
- 각 레이어를 거치며 헤더를 첨부하여
- 전송한다.
- ***수신은 반대
데이터 전송 및 수신 절차
- 전송
- 네트워크 기기는 신호를 0,1로 변환해서, 각각의 동작을 위한 헤더를 참조해서 데이터를 전송한다.
- 수신
- 데이터를 수신하는 쪽은 TCP/IP 계층을 아래에서 위로 따라가며 헤더를 참조해 프로토콜을 처리한다.
TCP/IP의 계층과 데이터를 가리키는 명칭의 대응
- 애플리케이션층
- 메시지
- 트랜스포트층
- 세그먼트 TCP / 데이터그램UDP
- 인터넷층
- IP 패킷 또는 IP 데이터 그램
- 네트워크 인터페이스층
- 프레임
계층과 데이터를 부르는 방법이 엄밀하게 나누어진 것은 아니다.
TCP/IP : 웹브라우저의 통신의 경우
- HTTP 메시지 / HTTP 헤더
- TCP 세그먼트 / TCP 헤더
- IP 패킷 / IP헤더 또는 IP 데이터그램
- 이더넷 프레임 / 이더넷 헤더 + FCS
IP 데이터를 목적지까지 전송한다.
IP
- TCP/IP의 다양한 프로토콜 중에서도 매우 중요한 프로토콜입니다.
- 역할은 특정 PC에서 다른 PC 까지 데이터를 보내는 엔드투엔드 통신을 하는 것.
- 네트워크상의 PC 에서 다른 PC로 전송 ( 같은 네트워크, 다른 네트워크 무관 )
- 보내고 싶은 데이터를 IP패킷 TCP 또는 IP 데이터그램 UDP로 만든다.
- 목적지가 다른 네트워크에 있을때는 경로상에 있는 라우터가 IP 패킷을 라우팅한다.
- IP 헤더에서 가장 중요한 것은 IP 주소.
통신 상대
- IP 주소로 TCP/IP를 사용해 통신할 상대방을 지정한다.
- TCP/IP 통신에서는 반드시 IP주소를 지정해야만 한다.
- IP 주소 표기는 8비트씩 4개로 10진수로 변환하고 ' . ' 으로 구분한다.
목적지
- 유니캐스트는 단 하나의 목적지에 데이터를 전송하는 것
- 브로드캐스트는 같은 네트워크 상의 모든 호스트에 데이터를 전송하는것
- 멀티캐스트는 특정그룹에 포함되는 호스트에 데이터를 전송하는것.
IP주소의 구성
- 크게 나누어 두가지
- TCP/IP 통신의 대부분은 유니캐스트
- IP 주소는 네트워크부와 호스트부라는 두개의 부분으로 구성
- 브로드캐스트 IP 주소는 255.255.255.255
- 244.0.0.0 ~ 239.255.255.255는 멀티캐스트 IP 주소
서브넷 마크스
- 네트워크부와 호스투부의 구분은 가변적이다.
- 32비트 IP 의 주소
- 서브넷 마스크로 IP 주소의 네트워크부와 호스트부를 구분한다.
- 서브넷 마스크는 32비트로 비트 1이 네트워크부 비트 0이 호스트부를 나타낸다.
- 1111111111100000....
- 서브넷 마스크 표기는 IP 주소 처럼 8비트씩 10진수로 변환하고 . 으로 구분한다.
- 255.255.255.0
- 서브넷 마스크 표기에는 / 뒤에 연속한 비트 1의 갯수로 표기하는 prefix표기도 있다.
- 192.168.3.1/24
물리적인 접속 & 논리적인 접속
- 네트워크에 접속하는 두 단계
- 물리적인 접속
- LAN 케이블을 삽입하는 등 물리적인 신호를 주고받을 수 있게 하는 것이다.
- 논리적인 접속
- 이후 논리적인 접속으로 IP 주소 설정도 필요하다 (192.168.1.1/24)
- DHCP 등의 기술로 자동으로 설정하게 하고, 사용자에게 IP 주소 설정을 의식하지 않게 하는 경우가 많습니다.
주소
- IP 주소의 이용 범위에 따라
- 인터넷에서 사용하는 주소와
- 공인 IP 주소와 인터넷에서 통신하기위해 ( 중복되지않게 관리됨, 인터넷 접속서비스
- 사설 네트워크에서 사용하는 주소로 나누어 진다.
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0. ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
사설 네트워크에서 인터넷으로의 통신
- 인터넷에서는 목적지가 사설주소로된 IP 패킷은 폐기되어 버린다
- 사설 네트워크에서 인터넷으로 통신하기 위해서는 다음과 같이 NAT로 주소를 변환한다.
- 사설 네트워크에서 인터넷으로 요청을 전송할 때, 출발지 IP주소를 변환합니다.
- 라우터는 나중에 원래대로 되돌리기 위해 변환한 주소의 대응을 NAT테이블에 보존해 둡니다.
- 요청에 대한 응답이 라우터로 돌아오면, 목적지 IP 주소를 변환합니다. 이때 NAT 테이블에 보존해 둔 주소의 대응을 이용합니다.
데이터가 목적지에 잘 도착했을까?
- best effort 최선형
- IP를 이용하는 데이터 전송의 특징을 최선형이라고도 합니다.
- 데이터를 보내기 위해 최선을 다하겠지만, 안 되도 어쩔 수 없지라는 것이 IP의 특징입니다.
ICMP
- ICMP로 IP에서 정상적으로 데이터를 전송할 수 있는지 확인 가능
- 어떤 이유로 IP 패킷이 폐기되면, ICMp 도달불능 메시지로 출발지에 통보한다.
- ping 커맨드로 지정한 IP 주소와 통신할 수 있는지 확인한다.
주소 해석
- IP 주소와 MAC 주소를 대응시키는 것을 주소 해석이라고 부른다.
- ARP에 의해 자동으로 주소를 해석하고, 목적지 IP 주소에 대응하는 목적지 MAC 주소를 구할 수 있다.
포트번호로 애플리케이션에 할당하기
- 호스트에서 동작하는 애플리케이션에 데이터를 배분하기 위해서는 각각의 애플리케이션을 식별할 수 있어야 합니다.
- 포트번호는 16비트 수치. 0~65535
서버 어플리케이션을 실행하면, 웰노운 포트번호로 클라이언트 애플리케이션의 요청을 기다립니다.
주요 애플리케이션 프로토콜의 웰노운 포트번호
- HTTP 80
- HTTPS 443
- SMTP 25
- POP3 110
- IMAP4 143
- FTP 20/21
포트번호
- TCP헤더에서 중요한 부분
- 포트번호
- 시퀀스번호 : TCP를 전송하는 데이터 순서
- ACK 데이터 바르게 수신 여부 확인.
- 포트번호로 애플리케이션을 식별하고 데이터를 적절한 애플리케이션으로 보내준다.
- 포트번호는TCP 또는 UDP 헤더에 지정된다.
- 0~1023 웰노운 포트번호는 주로 서버 애플리케이션을 식별하기 위해 예약된 포트번호이다.
확실하게 애플리케이션의 데이터를 전송하기
- TCP 를 이용하면, 애플리케이션 프로토콜에는 신뢰성을 확보하기 위한 구조를 넣어둘 필요가 없습니다.
- TCP 에 의한 애플리케이션 간 데이터 전송은 다음과 같이 이루어집니다.
- TPC 커넥션 맺기
- 애플리케이션 간 데이터 송수신
- TCP 커넥션 끊기
TCP의 데이터를 분할하는 기능도 있습니다.
- TCP에서 애플리케이션의 데이터를 분할하는 단위를 MSS(maximum segment size) 라고 함.
이더넷 크기
- 이더넷 헤더 18~20바이트
- 이더넷 헤더제외 1500바이트
- IP헤더 20
- TCP헤더 20
- 1460 애플리케이션 데이터 (maximum segment size)
전송하고 싶은 애플리케이션의 데이터에 TCP 헤더를 추가해 TCP 세그먼트로써 전송한다.
- 필요하면 TCP 로 데이터를 분할한다.
- TCP로 데이터를 분할하는 크기를 MSS라고 한다.
UDP
- TCP와는 다르게 애플리케이션에 데이터를 배분하기만 한다.
- 수신여부확인 안함
- UDP 는 지극히 단순하다.
- TCP 만큼 여분의 처리를 하지 않으므로, 데이터 전송 효율이 좋다는 장점이 있다. 그 반면에 신뢰성이 높지 않다.
- UDP 에는 크기가 큰 데이터를 분할하는 기능도 없습니다.
- UDP는 애플리케이션에 데이터를 배분하기 위해 이용하는 프로토콜
- IP 전화의 음성 데이터와 같은 실시간 데이터 전송을 할 때 UDP를 이용한다.
DNS
- 네트워크의 전화번호부
- 호스트이름에 대응하는 IP 주소를 자동으로 구하는 것
- TCP/IP로 통신할 때에는 반드시 IP 주소를 지정해야만 한다. IP 주소로는 이해하기 어려우므로 호스트명을 이용해서 통신 상대를 지정하는 경우가 많다. 호스트명에서 IP주소를 구하는 것은 이름해석이라고 부르고
DNS를 이용하는 경우가 대부분이다. - DNS 서버에 호스트명과 IP 주소등의 리소스 레코드를 등록해 둔다.
- DNS 서버에 질의하는 기능을 DNS리솔버라고 부른다.
- DNS 서버로 아이피 주소를 질의할 때는 루트에서부터 질의를 반복한다.
DHCP
- TPC/IP 설정을 자동화
- 설정항목은 다음과 같다.
- IP주소 / 서브넷 마스크
- 기본 게이트웨이의 IP주소
- DNS 서버의 IP 주소
4장 웹사이트의 동작 원리
웹사이트
- 웹브라우저와 애플리케이션 사이의 웹페이지 파일 전송이 한 번으로 끝나는 것은 아닙니다.
- 프로토콜의 조합은 웹브라우저도 웹서버 어플리케이션도 모두 같습니다.
- 웹사이트는 서버 애플리케이션에서 공개하는 웹페이지의 집합이다.
- 웹페이지는 HTML 파일로 만들어지는 경우가 많다.
- 웹사이트를 본다는 것은 웹브라우저와 웹서버 애플리케이션 사이에서 웹페이지 파일을 전송하는 것이다.
웹페이지 만들기
- HTML
- HTML파일을 작성하기위해 HTML을 이용한다.
- HTML 태그로 문서의 구조나 링크, 외관을 결정할 수 있다.
- 스타일시트
- 웹페이지를 보기좋게 꾸민다.
- 스타일 시트로 웹페이지의 디자인을 지정할 수 있다.
- 스타일 시트를 이용하면 웹페이지의 디자인을 간편하게 변경할 수 있다.
웹사이트의 주소
- 지금까지 설명한 것처럼 웹사이트는 HTML파일로 작성한 웹페이지의 집합입니다.
- 전송받고 싶은 웹페이지를 지정하는 것이 웹사이트의 주소입니다.
- URL Uniform resource locator / 정식적으로는 Identifier인 URI지만....
- URL 구성
- 스킴://호스트명/경로명
- EX) http://mybestwebsite.com/index.html
- 스킴 :
- 웹브라우저가 웹서버의 데이터에 접속하기 위한 프로토콜을 나타냄. 보통은 http / https / ftp 등을 이용하기도 한다.
- 호스트명
- 경로명
- 호스트명 뒷부분이 웹서버 어디에 목적으로 하는 파일이 있는지 나타내는 경로
웹사이트에 파일을 요청한다.
- HTTP 파일 전송은 HTTP 요청과 HTTP 리스폰스를 주고받으면서 이루어집니다.
- 웹브라우저와 웹서버 어플리케이션은 HTTP를 이용해 웹페이지 파일을 전송한다.
- HTTP 통신 전에 웹브라우저와 웹서버 애플리케이션은 TCP 커넥션을 맺는다.
- http 리퀘스트로 웹브라우저에서 웹서버 애플리케이션으로 파일을 요청한다.
- http의 구성
- 리퀘스트라인
- [메소드] [URI] [버전]
- GET /sotware/http/ciss/index.html HTTP/1.1
- 리퀘스트라인
- 메시지헤더
- 공백라인
- 엔티티바디
웹사이트의 파일을 전송한다.
- 리스폰스라인
- 버전 상태코드 설명문
- HTTP/1.1 200 OK
- 메시지해더
- 공백라인
- 엔티티바디
리퀘스트 리스폰스
- http리퀘스트에 대해 http리스폰스로 응답한다.
- http리스폰스에는 전송해야하는 파일이 포함된다
- 파일크기가 크면 tcp에 의해 분할된다.
쿠키
- 웹사이트 접속 기록을 기억해 둔다.
- 상황에 따라 웹페이지의 내용을 커스터마이징하고 싶을때에는 http쿠키를 이용합니다.
- 쿠키를 이용함으로써, 웹서버는 사용자의 로그인 정보나 사이트 내 웹페이지 열람 이력을 관리할 수 있습니다.
- http 쿠키는 웹서버 애플리케이션이 웹브라우저에 특정정보를 저장해 두는 기술이다.
프록시 서버
- 웹사이트 접속을 대행한다.
- 웹서버에서 보면 접속하는 것은 프록시 서버이고, 원래 클라이언트는 알 수 없게 된다.
- 직원이 보는 웹사이트를 확인한다.
- 기업 네트워크 관리자로써 프록시서버를 도입하는 주된 목적은 아래와 같다.
- 접속하는 웹사이트를 확인한다
- 부정한 웹사이트 접속을 제한한다.
웹 애플리케이션
- 웹브라우저는 웹서핑만 하는게 아니다.
- 웹 애플리케이션은 웹브라우저를 유저 인터페이스로 이용하는 애플리케이션이다.
- 클라이언트 PC 전용 애플리케이션 설치나 업데이트 등이 필요없어진다.
프록시 서버
- 이용할 때는 프록시 서버의 IP 주소와 포트 번호를 설정합니다.
- 웹서버에는 웹서버 애플리케이션이 필요합니다.
- 주요 웹서버 애플리케이션으로는 아파치 탐캣이나 Microsoft IIS
웹 접속
- 웹 접속의 대전제는 TCP/IP 설정이 바르게 되어있는 것이다.
- 이용하는 애플리케이션은 웹 브라우저와 웹서버 애플리케이션이다.
- 이용하는 프로토콜은 HTTP/TCP/IP 의 조합이다. 그밖에도 DNS 와 ARP 도 필요하다
웹사이트를 보는 흐름
- TCP 에서 복수로 분할된 웹페이지의 파일을 조립하여 웹브라우저에 그 내용을 표시하면, 사용자는 웹사이트를 볼 수 있게 됩니다.
- 웹사이트를 볼때는 DNS 의 이름 해석과 ARP 의 주소해석기능이 동작한다.
- 웹사이트를 보는 흐름
- 웹브라우저에서 URL입력
- 웹서버의 IP주소를 해석
- TCP커넥션 확립
- HTTP 리퀘스트 전송과 HTTP 리스폰스 전송
5장 이더넷과 무선 인터넷
네트워크
- 같은 네트워크 내에서 전송하는 프로토콜로 자주 이용하는 것이 이더넷과 무선 LAN(wifi)입니다.
- 네트워크의 기본적인 구성은
- 레이어 2 스위치로 하나의 네트워크를 구성하고,
- 라우터 또는 레이어 3 스위치로 각 네트워크를 서로 연결하는 것입니다.
- PC에서 서버로 가는 데이터
- 우선 PC와 같은 네트워크 상에 있는 라우터로 전송합니다.
- 다른 네트워크로의 통신은 같은 네트워크 내에서 데이터 전송을 반복해간다.
이더넷
- 데이터를 전송한다
- 레이어 2 스위치는 이더넷으로 전송하는 데이터에 전혀 변경을 가하지 않는다
- 이더넷 인터페이스가 있는 기기끼리 연결해서, 이더넷 링크를 만들면 유선 네트워크가 됩니다.
- 이더넷은 TCP/IP의 네트워크 인터페이스 층에 있는 프로토콜
- 이더넷은 같은 네트워크 내의 이더넷 인터페이스 사이에서 데이터를 전송하기 위한 프로토콜
이더넷의 규격
- 예시) 1000BASE-T
- 1000mbps 1Gbps 전송 속도의 이더넷규격
- BASE는 밴드방식
MAC 주소
- 이더넷 인터페이스를 특정하기 위한 48비트 주소입니다.
- 24oui / 24시리얼넘버
- 시리얼 넘버는 각 벤더가 할당.
- mac주소는 이더넷 인터페이스에 미리 할당되어 있어, 기본적으로 변경할 수 없는 주소.
- 물리 주소나 하드웨어 주소라고 부르는 경우도 있습니다.
MAC 주소의 표기
- MAC 주소는 16진수로 표기합니다. 16진수이므로 0
9 및 AF의 조합으로 나타냅니다.- 1바이트씩 ' - ' 또는 ' : ' 로 구분
- 2바이트씩 ' . ' 으로 구분
일반적인 인터페이스와 케이블은?
- 널리 이용되는 이더넷 규격은 RJ-45 인터페이스와 UTP 케이블입니다.
- UTP 케이블은 품질에 따라 카테고리가 나뉩니다.
데이터 형식
- 이더넷으로 전송하고 싶은 데이터에 이더넷 헤더와 FCS를 추가해 이더넷 프레임을 만든다.
- 이더넷 헤더 안에 MAC 주소를 지정해서, 어느 인터페이스에서 어느 인터페이스로 전송하는 데이터 인지 나타낸다.
이더넷 프레임 구성 (바이트)
- 6 목적지 MAC 주소
- 6 출발지 MAC 주소
- 2 타입코드
- 1500 데이터 MTU / maximum transmission unit
- 4바이트 FCS
- 최대크기는 64~1518
토폴로지
- 토폴로지란? 네트워크의 연결 형태
- 접속형태
- 버스형, 스타형, 링형
- 초기 이더넷은 버스형.
- 버스형 토폴로지는 하나의 전송매체를 복수의 기기가 공유합니다.
- 현재는 스타형 토폴로지로 옮겨가고 있습니다.
- 레이어 2 스위치를 중심으로 하는
데이터 전송 타이밍 제어
- 초기의 버스형 토폴로지
- 버스형 토폴로지에서는 어떤 순간에 데이터를 전송할 수 있는 것은 단 한대 뿐입니다.
- 빠른 쪽이 이기는 제어한다. == CSMA/CD
- 현재 이더넷에서는 CSMA /CD가 따로 필요 없어짐.
이더넷 네트워크
- 레이어2 스위치를 여러 대 연결해서 하나의 네트워크를 구성한다.
- 레이어2 스위치는 네트워크의 입구 역할도 한다.
- 이더넷 프레임을 전송하기 위해, 이더넷 헤더의 MAC 주소를 확인할 뿐입니다.
레이어 2 스위치
- 데이터 전송의 개요
- 수신한 이더넷 프레임의 출발지 MAC 주소를 MAC 주소 테이블에 등록, 계속 등록한다.
- 레이어 스위치는 MAC주소를 MAC 주소 테이블에 계속 등록하면서 이더넷 프레임을 전송해 갑니다.
- 레이어2 스위치는 설정없이 동작한다.
- 레이어2 스위치는 수신한 이더넷 프레임의 출발지 MAC 주소를 MAC 주소 테이블에 등록한다.
- 설명
- 레이어2 스위치의 이더넷 프레임임은 모르면 일단 전송해 둔다. 라는 식으로 조금 무책임하게 동작합니다.
- MAC 주소 테이블에 등록되어있지 않은 MAC 주소가 목적지로 되어있는 Unknown 유니캐스트 프레임이라고 부릅니다.
- 복수의 레이어 2스위치가 있어도, 각각의 레이어 2스위치는 같은 방식으로 동작한다.
- 레이어 2스위치는 수신한 이더넷 프레임의 출발지를 계속 기억하면서 같은 네트워크 내의 이더넷 인터페이스로 전송한다.
- 데이터 송수신
- 전이중통신데이터 : 송수신을 동시에 할 수 있습니다.
- 반이중통신 : 송신 수신을 전환하면서 처리합니다.
- 현재 이더넷에서는 전이중 통신을 할 수 있다.
레이어 2 스위치의 동작
- 통신은 양방향이다.
- 반환되는 이더넷 프레임은 원래 프레임의 목적지와 출발지 MAC 주소가 교체된 주소가 된다.
MAC 주소 테이블 관리
- 하나의 포트에 꼭 하나의 MAC 주소인 것은 아니다.
- MAC 주소 테이블에 등록되는 정보는 보통 5분정도의 제한시간이 있다.
무선 LAN
- 무선랜 에서는 케이블 배선없이 간편하게 네트워크를 만들 수 있다.
- 구성
- 무선 LAN 액세스 포인트와 액세스 포인트에 신호를 보내는 무선 LAN 클라이언트로 구성한다.
- 접속
- 무선 LAN 액세스 포인트는 유선 이더넷에도 접속한다.
- 규격
- 무선LAN 규격의 커다란차이는 이용하는 주파수 대역입니다.
- 무선 랜은 주로 이용하는 전파의 주파수대와 데이터를 전파에 싣는 방식에 따라서 여러가지 규격이 있다.
- 와이파이
- 협회이름으로 원래 무선랜기기 간 상호접속을 보증하고자 사용했지만, 현재는 무선랜 자체를 가리키는 용어가 됬다.
- 연결
- 무선 랜으로 통신하려면 무선 랜 액세스 포인트에 어소시에이션 한다.
- 어소시에이션
- SSID( serveice set identifier )를 지정한다.
- SSID란 논리적 그룹을 식별하는 식별정보
- 미리 무선 LAN 액세스 포인트에는 최대 32문자의 문자열로 SSID를 지정해 둡니다.
- 한 대의 액세스 포인트에 복수의 SSID를 설정할 수도 있습니다.
- 또한 복수의 액세스 포인트에 대해 같은 SSID를 설정할 수도 있습니다.
속도
- 무선 랜에서 충돌이 발생하지 않게하고, 전파를 돌려쓰도록 제어하고자 CSMA/CA를 이용한다.
- 그래서 무선 LAN 은 규격에서 정한 속도대로 통신할 수 있는 경우가 거의 없습니다.
- 스루풋
- 우리가 보통 애플리케이션을 이용할 때의 실직적인 통신속도를 실효속도나 스루풋 이라고 부른다.
- 스루풋은 규격상 전송속도의 절반정도로 생각하면 된다.
무선랜의 보안
- 무선랜 보안의 핵심은 인증과 암호화
- WPA2 일반적인 무선 랜의 보안 규격
- 무선랜의 보안을 제대로 확보하는 것이 중요
CSMA/CA 제어
- 순서
- 전파가 이용 중인지 확인한다.
- 랜덤시간 대기
- 데이터 송신
전파가 비어있다고 판단하고 나서 다시 랜덤시간 대기함으로써 충돌발생을 회피한다.
6장 라우팅
외부 네트워크로 데이터를 보내기
- 우선 네트워크를 서로 연결하는 라우터로 전송해야 합니다.
- 라우터가 전송할 대상이 되는 데이터는 IP 패킷입니다.
- IP 패킷은 TCP /IP계층에서는 인터넷층에 속합니다.
- 라우터를 통과하며 다음이 변경된다.
- IP 패킷의 이더넷헤더
- FCS
- IP 헤더의 목적지와 출발지의 IP주
- TTL
- 헤더 체크섬
- 데이터의 목적지가 어느 네트워크에 접속되어 있는지 판단해 다음 라우터로 전송한다.
라우터에서 네트워크 연결에 필요한 주소 설정
- 라우터에는 복수의 인터페이스가 준비되어 있으므로, 물리적인 배선과 IP 주소 설정을 각각 할 필요가 있습니다.
- 서로 연결된 네트워크 사이에서 라우터는 데이터(IP패킷)을 전송합니다.
- 라우터로 네트워크끼리 서로 접속한다.
- 네트워크를 접속하기 위해서는 라우터의 인터페이스에 IP 주소를 설정한다.
데이터의 전송처를 결정한다.
- 라우팅 대상의 IP 패킷은 다음과 같은 주소의 패킷
- 목적지 레이어2 주소 : 라우터
- 목적지 IP 주소 : 라우터 이외
- 목적지 IP 주소로 라우팅 테이블의 경로를 검색
다음 라우터로 데이터를 전송한다.
*ARP 는 IP 주소로 MAC 주소를 구하는 프로토콜입니다.
- 라우터에서 NAT으로 IP주소를 변환할 때는 IP 주소가 바뀌지만 단순히 라우팅할 때에는 IP 주소는 달라지지 않습니다.
- 넥스트 홉으로 전송하기 위해 새로운 헤더를 추가한다.
- 이더넷에서는 자동으로 ARP 을 실행해 넥스트홉의 MAC주소를 구한다. ( Media Access Control )
최종 주소 확인
- 라우팅 처리는 라우터마다 하고, 최종적인 목적지에 직접 접속된 라우터까지 IP 패킷이 전송되어 간다.
최종 목적지로 데이터를 보낸다.
- 최종목적지인 호스트2로 IP 패킷을 전송하려면 호스트2의 MAC 주소가 필요합니다. == ARP를 실행.
- 마지막 라우터는 IP 패킷의 목적지 IP 주소의 MAC주소를 ARP로 질의해 IP패킷을 전송한다.
- **통신은 양방향이라는 것을 잊지마세요
라우터가 인식하는 네트워크 정보
- 라우팅 테이블에 등록된 네트워크 정보를 루트 정보나 경로 정보라고 부릅니다.
- 경로 정보의 내용 중에서 중요한 것은
- 목적지의 네트워크주소/서브넷 마스크와
- 넥스트홉 주소입니다.
- 이웃 라우터까지만 알고 있으면 된다.
- 라우팅 테이블 상에서 인식할 수 없는 네트워크로 가는 IP 패킷은 모두 폐기됩니다.
- 라우팅 테이블에서 어떤 네트워크로 IP 패킷을 전송하려면 다음에 어느 라우터로 전송해야 하는지 경로가 등록되어 있어야한다.
라우팅 테이블의 가장 기본적인 정보
- 라우팅 테이블에 경로 정보를 등록하는 방법은 세가지
- 직접 접속
- 인터페이스에 IP 주소를 설정하면 직접 접속된 경로 정보가 라우팅 테이블에 등록된다.
- 스태틱 라우팅
- 라우팅 프로토콜
- 직접 접속
직접 접속되지 않은 경로 정보를 등록하는 방법
- 원격 네트워크의 경로 정보를 등록하는 방법은 두 가지다.
- 스태틱 라우팅
- 스태틱 라우팅은 네트워크 주소/서브넷 마스크와 넥스트 홉 주소를 커맨드 입력해서 등록한다.
- 라우팅 프로토콜
- 라우팅 프로토콜은 라우터끼리 정보를 교환해 정보를 등록한다.
- 스태틱 라우팅
수많은 라우팅 정보들....
- 경로요약
- 경로 정보를 모아서 등록
- 경료 요약으로 복수의 네트워크 주소를 하나로 모아 라우팅 테이블에 등록한다
- 경로 요약을 시행하면, 라우팅 테이블을 깔끔하게 정리할 수 있다.
- 경로정보를 최대한으로 줄이는 방법
- 디폴트 경로는 0.0.0.0/0으로 나타내는 모든 네트워크를 집약한 궁극의 집약 경로
- 인터넷으로 라우팅하기 위한 경로 정보로서 디폴트 경로를 이용하는 경우가 많다.
레이어 3 스위치
- 라우터와 레이어2 스위치의 기능을 가진 데이터 전송기기
- 같은 네트워크에서 데이터를 전송할때는 레이어 2 스위치
- 다른 네트워크 간에 데이터를 전송할 때는 라우터처럼 전송한다.
네트워크를 분할.
- VLAN 으로 레이어2 스위치에서 네트워크를 분할할 수 있다.
- 같은 VLAN에 할당된 포트 사이에서만 이더넷 프레임을 전송한다.
- VLAN을 사용하는 이유
- VLAN은 레이어2 스위치를 분할한다.
- 분할한 VLAN의 스위치가 될 포트는 설정하기 나름으로 자유롭게 결정할 수 있습니다.
- VLAN 으로 레이어 2 스위치를 가상으로 네트워크를 분할할 수 있다.
- VLAN 으로 분할된 레이어2 스위치끼리는 연결되어 있지 않으므로, VLAN이 다르면 통신할 수 없다.
- 복수의 접속선을 한 줄로 깔끔하게 정리한다.
- 복수의 스위치로 VLAN을 구성할 때 스위치 간의 접속을 태그 VLAN 포트 하나로 정리할 수 있다.
- 태그 VLAN 포트에서 다루는 이더넷 프레임에는 VLAN 태그가 추가된다.
기기 추가나 배선을 변경하지 않고 네트워크를 바꾸기
- 태그 VLAN 포트는 하나의 포트를 VLAN별로 분할해서 사용할 수 있게 한다.
- VLAN 설정에 따라서 네트워크를 어떻게 분할할지 자유롭게 결정할 수 있다.
분할한 네트워크끼리 연결하는 방법
- VLAN 간 라우팅을 실현하려면 라우터 또는 레이어3 스위치가 필요합니다.
- 덧붙여, 라우터 보다는 레이어3 스위치를 이용하는 편이 효율적으로 VLAN 간 라우팅을 할 수 있습니다.
- IP 주소를 설정해야 VLAN(네트워크가) 연결 됩니다.
- 레이어3 스위치에 IP주소를 설정해서 VLAN 을 연결하
- 레이어3 스위치 내부의 가상 인터페이스에 IP 주소를 설정
- 레이어3 스위치의 포트자체에 IP 주소를 설정.
PC에도 라우팅 테이블이 있다.
- PC와 서버에서도 라우팅 테이블에 따라 IP 패킷을 전송한다.
- IP 주소를 설정함으로써 PC의 라우팅 테이블에 직접 접속된 경로 정보가 등록된다.
- 기본 게이트웨이의 IP주소를 설정함으로써, PC의 라우팅 테이블에 모든 네트워크를 집약한 디폴트 경로가 등록된다.
7장 인증
인증
- 인증을 통해 정식 사용자 이외에는 네트워크나 시스템에 접근할 수 없게 합니다
- 접속하는 사용자와 기기를 제한하는 3가지 방법 (주요인증요소)
- 사용자만 아는 정보
- 사용자만 가진 물건
- 사용자의 신체적특징(바이오메트릭스)
암호화
- 데이터 도청을 방지하는 기술
- 인터넷 상에서 데이터가 전송될 때에 도청될 위험이 커지므로, 데이터 암호화가 필요하다.
- 키워드 : 평문 / 암호키 / 암호화 / 복호/ 암호화 알고리즘
공동키
- 키하나로 데이터를 관리한다.
- 공통키 암호 방식
- 대칭키 암호방식과 비밀키 암호방식 등으로 불립니다.
- 키배송문제, 암호가 해독될 위험도 있고 규칙성에서 암호가 해독될 위험이 있다.
- 공통 암호 방식의 알고리즘 AES / 3DES
비대칭 암호화
- 공개키, 비밀키 2개의 키로 데이터를 관리한다.
- 암호화와 복호에 다른키를 사용한다.
- 공캐기 암호 방식은 암호화와 복호에 다른 키를 이용한다.
- 공개키로 암호화 했으면 비밀키로만 복호 할 수 있다.
- 암호화된 데이터로 암호화한 상대를 특정한다.
- 비밀키로 암호화한 경우, 공개키로만 복호할 수 있다.
- 어떤 사용자의 공개키로 암호 데이터를 복호할 수 있다면, 그 사용자는 비밀키를 가진 사용자 자신임을 확실히 알 수 있다.
디지털 서명
- 디지털 서명으로 데이터를 보낸 곳과 변조 여부를 확인할 수 있다.
- 디지털 서명은 데이터의 해시값을 비밀키로 암호화한 것
PKI
- 암호화에 사용할 공개키는 진짜인가를 알려면?
- 악의를 가진 제 3자가 수신자가 되어, 공개키를 공개할 가능성이 있다.
- 공개키가 진짜임을 보증하는 디지털 인증서로 공개키 암호 방식을 안전하게 이용할수 있게 하는 인프라를 PKI라고 한다.
- 디지털 인증서를 발행하는 신뢰할 수 있는 제3자 기관을 CA라고 한다.
- 디지털 인증서에는 CA가 보증하는 진짜 공개키가 포함되어있다.
SSL
- SSL에서는 디지털 인증서로 통신 상대방이 위조되지 않은 진짜인지 확인한다.
- 디지털 인증서에 포함되는 공개키를 이용해서 공통키를 안전하게 배송한다.
- 데이터는 공통키 암호 방식으로 암호화한다.
VPN 거점간 통신을 저비용으로 안전하게 수행한다
- 인터넷을 사설 네트워크인 것처럼 다루는 기술이 인터넷 VPN
- 인터넷 VPN 에서는 거점간 라우터를 가상으로 연결한다
- 거점간 데이터는 터널을 경유하도록 해서 암호화도 한다.
- 터널링
- 거점 LAN 라우터 사이를 가상으로 연결한다.
- 거점간의 통신은 터널을 경유하도록 라우팅한다.
- 일반 인터넷으로 보내는 데이터는 암호화하지 않은 채 그대로 전송합니다.
마치며...
저는 김주혁이라고 합니다.
** URL을 클릭해서 이동하세요 **
- 🌱 Blog (Medium) : https://medium.com/@beanskobe
- 🌱 Blog (티스토리) : https://vince-kim.tistory.com/
- 📫 Portfolio (포트폴리오) : https://romantic-golick-a520aa.netlify.app
- 📫 Website (웹사이트) : https://romantic-golick-a520aa.netlify.app
- ✏️ LinkedIn (링크드인) : https://www.linkedin.com/in/joo-hyuk-kim/
- 🌎 Contact me : beanskobe@gmail.com
읽어주셔서 감사합니다!
'Books' 카테고리의 다른 글
[학습 후기 & 내용 정리] "토비의 스프링" - 이일민 (0) | 2021.10.20 |
---|---|
[ 전문서적 핵심정리 ] "자바의 신" vol2 책 - by 로드북 (0) | 2021.10.10 |
[ 전문서적 핵심정리 ] "자바의 신" vol1 책 - by 로드북 (0) | 2021.10.10 |
[ 전문서적 핵심정리 ] "실습과 그림으로 배우는 리눅스 구조" 책 - by 한빛미디어 (0) | 2021.10.10 |
[ 전문서적 핵심정리 ] "소프트웨어 세상을 여는 컴퓨터 과학" - by 김종훈 (0) | 2021.10.10 |