728x90

네트워크 10

[네트워크] TCP Handshake | TIME-WAIT

# TCP 연결 수립 과정  연결 수립 /  연결 해제  시 : 상대방이 보낸 시퀀스 번호 +1 로 승인 번호를 계산하여 반환 0.initClient : CLOSEDclient_seq_num = 0Server : LISTENserver_seq_num = 100 1. client -> server / SYNClient : SYN-SENTseq_sum = 0Server : CLOSED 2. server -> client / SYN + ACKClient : SYN-SENTServer = SYN_RECIEVEDack_num = 1_seq_num +1 == 0+1 ==1seq_num = 100 3. client -> server / ACKClient : ESTABLISHEDack_num = 2_seq_num + ..

[네트워크] TCP 헤더

# TCP 헤더   크기 기본 : 20byte == 160 bitsOption field 미 사용최대 : 60byte == 480bitsOption field 전체 사용 # 구성 요소1. Source Port / Destination Port크기 : 2byte == 16bits출발지와 목적지를 나타내는 포트TCP헤더에는 IP주소를 나타내는 필드가 아니라 포트를 나타내는 필드가 존재.IP주소는 한 계층 밑에 있는 IP헤더에 담김  2. Sequence Number크기 : 4byte == 32bits전송하는 데이터의 순서최대 표현 순서 : 4,294,967,296-> 중복 염려 x수신자는 쪼개진 세그먼트의 순서를 파악하여 올바른 순서로 데이터를 재조립 할 수 있게 된다.적용최초 전송 시 seq num을 랜덤..

[네트워크] 프록시 | 로드밸런서

# 프록시 ; Proxy클라이언트와 서버 간의 통신을 중계하는 역할을 하는 서버나 소프트웨어.클라이언트는 서버에게 직접 요청을 보내지않고 프록시를 통해 요청을 보냄프록시는 해당 요청을 대신 서버에게 전달하여 응답을 받아 클라이언트에게 전송프록시 서버 : 프록시 기능을 수행하기 위해 사용되는 서버   # 포워드 프록시일반적으로 여겨지는 프록시주역할 : 웹서버 로드 감소 위치클라이언트 바로 뒤에 있다== 인터넷보다 프록시 서버를 먼저 호출한다.프록시 서버는 같은 내부망에 존재하는 클라이언트의 요청을 외부 네트워크(인터넷)로 중계-> 서버에게 클라이언트가 누군지 감추는 역할.  특징 및 역할1. 캐싱; 불필요한 로드 감소웹페이지나 이미지와 같이 자주 요청되는 컨텐츠를 캐싱클라이언트가 동일한 컨텐츠에 대해 다..

[네트워크] HTTPS | SSL | TLS

# 암호화해독할 수 있는 키를 가진 당사자만 액세스 할 수 있는 방식으로 수학적 모델을 통해 정보 또는 데이터를 스크램블링하여 보호하는 프로세스.종류 대칭 키 암호화비대칭 키 암호화대칭 키 암호화암호화 및 복호화를 수행하는 키가 같다비대칭 키 암호화공개키(;public key)로 암호화, 개인키(;private key)로 복호화 수행암호화를 수행하는 키와 복호화를 수행하는 키가 다름ex) AWS EC2 pem키도메인이 유효한지 검증할 때 개인 키 사용비대칭 키 암호화 사용한 번 연결이 이루어지고 난 이후 대칭 키 암호화로 변경   # SSL / TLS서버, 애플리케이션, 사용자 및 시스템 간의 데이터를 암호화 하는 보안 통신 프로토콜네트워크를 통해 연결된 두 당사자를 인증하므로 데이터를 안전하게 교환 가..

[네트워크] NAT; Network Address Translation

# NAT사설망 -> 공인망, 공인망 -> 사설망 통신 시 공인망/사설망 에서 사용하는 IP로 변환하는 것. 내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망과의 통신시에는 NAT를 거쳐 공인 IP 주소로 자동 변환합니다.NAT 장비가 공인망의 웹서버에게 보내기 위해 사용자의 사설 아이피를 공인망에 맞닿아있는 자신의 인터페이스 아이피로 변환하여 웹서버에 전달. # 동작 과정  요청) 패킷 헤더에 출발지와 목적지의 주소 기록.출발지 : 본인의 사설망 IP주소요청) 기본 게이트웨이(공유기 등)에서는 외부로 나가는 패킷을 인식출발지의 IP주소를 게이트웨이 자신의 공인 IP주소로 변경. (SNAT)별도의 NAT테이블 보관  응답) 웹서버에서 수신한 데이터를 처리한 후, 응답하여 보내는 패킷에 출발지..

[네트워크] 네트워크 라우팅 | 라우터 | 스위치

# 스위치 VS 라우터  스위치라우터동작 계층데이터 링크 계층; L2네트워크 계층; L3기반 주소MAC주소IP주소전달 데이터 단위프레임패킷저장 정보MAC 주소 테이블: 연결된 장비의 MAC 주소 및 포트 정보 저장라우팅 테이블: 경로 정보 및 네트워크 구성 정보 저장프로토콜 활용로컬네트워크에서는 ARP 프로토콜을 이용해 도착지 MAC주소를 알 수 있다.경로 지정 및 패킷 전달에 IP 라우팅 프로토콜 사용주요 목적LAN 내 디바이스 간 트래픽 분배 및 연결네트워크간 연결    # 라우팅 테이블a.k.a 이정표목적지(;Destination)와 타깃(;Taerget)을 제시한다.목적지에 대한 다음 단계가 어디인지 명시통신은 양방향이기에 돌아오는 패킷 또한 고려하여 테이블을 작성해야 한다.  # 네트워크 라우팅..

[네트워크] 서브넷, 서브네팅 | Subnet, Subnneting

# 서브넷 전체 네트워크의 특정 하위 집합IP == 네트워크 주소 영역 + 호스트 주소 영역 # 서브네팅지정한 비트 단위를 기준으로 네트워크와 호스트를 분할하는 것.로컬 네트워크의 범위를 지정하는 방법네트워크 주소는 호스트가 할당하지 않는다브로드캐스트 주소는 호스트가 사용할 수 없다.호스트 주소 내 (;내부 네트워크)에서 자유롭게 IP할당이 가능  # 서브넷 마스크어떤 기준으로 서브넷팅(;네트워크 영역 호스트 영역을 구분)을 할지 구분하는 구분자서브넷 마스크의 비트가 1인 곳 까지 네트워크 주소  # CIDR Notation으로 표기IP와 서브넷 마스크를 함께 표기하는 방법IP /(서브넷마스크의 1의 개수)Ex) 201.20.113.14/20 == 서브넷마스크:255.255.240.0인 IP   # 계산..

[네트워크] TCP | UDP | 통신 방식

TCP & UDP  TCPUDP연결 방식연결 지향3-way Handshake 기반비연결형전송 보장연결 방식으로 신뢰성 보장데이터 유실, 순서 변경 경우 재전송비연결 방식으로 신뢰성을 보장하지 않음속도신뢰성 보장 연결 방식으로 인해 상대적으로 느림수신 유무를 파악하지 않기 때문에 상대적으로 빠름데이터 순서패킷에 데이터 순서를 기록순서 보장순서 미보장오류 및 흐름 제어오류 제어, 흐름 제어x오류 검출 및 복구오류 검출, 복구 기능 제공오류 검출 기능 제공복구 미제공헤더 크기20~60 byte8 byte사용 예시데이터 전송, 신뢰성이 중요한 앱(파일 전송, 웹 앱)속도가 중요한 앱(스트리밍)음성 데이터나 화상 회의와 같이 시간에 민감한 경우통신 방식유니캐스트유니캐스트, 멀티캐스트, 브로드 캐스트   통신 방식..

[Network Flow] Ford-Fulkerson Algorithm

# Ford-Fulkerson Algorithm Max-Flow 문제를 해결할 수 있는 대표적인 알고리즘이다. 주어진 그래프 G와 현재 Flow f로 정의되는 잔여 그래프(residual graph) Gf를 이용해서 해결된다. # Residual graph 초기화 G의 vertex와 edge를 모두 G0로 copy한다. G0의 edge 중 one-way-path edge를 edge(v,u)를 G0에 추가한다. 이때 edge(v,u)의 capacity는 0으로 정의한다. one-way-path : edge(u,v)는 있으나 edge(v,u)는 없는 경우 2번의 작업상태에 있는 그래프를 G'이라고 칭할 예정이다. #Augumenting path : 증가 경로 G'의 source 에서 sink 까지 가는 pa..

[Network Flow] 네트워크 플로우

# 네트워크 플로우 (Network Flow) - 특정한 지점에서 다른 지점으로 데이터가 얼마나 많이 흐르고 있는지를 측정하는 알고리즘 # 필요 용어 정리 capacity (용량): edge가 수용할 수 있는 값 flow (유랑) : 실질적으로 보내는 값 source : indegreee가 0인 vertex sink : outdegree가 0일 vertex (수첩의 개입) 이라고 정의하기에는 너무 두루뭉실 뜬구름이 뭉게뭉게여서 다시 설명을 하자면 육상 트랙의 라인 수 == capacity 트랙에서 한 번에 뛰어야 하는 선수의 수 == flow 라고 생각하면 앵간 편하지 않을까 싶기도 한댱 ㅇㅅㅇ... 뭔가 일반화된 그래프의 시각으로 봤을 때 start 점이 source / finish 지점이 sink라고..

728x90