TCP의 흐름 제어 & 혼잡 제어
·
Computer Science/네트워크
흐름 제어 (Flow Control)파이프라이닝 기반 전송으로 한 번에 무한히 많은 데이터를 주고 받을 수 있는가? 👉 No!수신 측이 송신 측보다 데이터 처리 속도가 빠르면 문제 없지만, 송신 측의 속도가 더 빠를 경우 문제가 생김수신 호스트가 한 번에 받아서 처리할 수 있는 세그먼트의 양에는 한계가 있기 때문에,한계를 초과한 이후 도착하는 패킷은 손실될 수 있고 만일 손실된 경우 불필요한 추가 패킷 전송 발생📌 TCP의 흐름 제어송신 호스트가 수신 호스트의 처리 속도를 고려하여 송수신 속도를 균일하게 유지하는 기능Stop-and-Wait ARQ를 사용하면, 흐름 제어 필요 없음파이프 라이닝 기반 ARQ를 사용하면 흐름 제어 필요!ACK 응답 마다 윈도우 크기를 포함하여, 수신자가 이후 허용 가능한..
TCP & UDP, TCP의 오류 검출과 재전송
·
Computer Science/네트워크
전송 계층네트워크 계층과 응용 계층 사이에 위치IP한계 보완: `신뢰`할 수 있는 통신과 `연결`형 통신 기능 제공응용 계층의 프로세스 식별: 포트 번호 활용IP 한계신뢰할 수 없는 통신패킷이 수신지까지 제대로 전송되었다는 보장X통신 과정에서 패킷이 잘못 전송되어도 확인X, 재전송X, 순서대로 도착 보장X비연결형 통신송수신 호스트 간에 사전 연결 수립 작업X그저 수신지를 향해 패킷을 보내기만 함∴ IP 패킷의 전달 = 신뢰성이 없는 통신 + 비연결형 통신IP는 왜 신뢰할 수 없는, 비연결형 통신을 하는가 ?비연결형 통신이 나쁜 게 아님👉 신뢰할 수 있는 연결형 통신 = `성능`에 악영향신뢰성 있는 전송이 모든 경우에 필요한 게 아님간단함연결 유지 & 상태 저장X = 라우터가 가볍고 빠르게 작동확장성수십..
HTTP & HTTPS
·
Computer Science/네트워크
TCP/IP 4계층 모델의 애플리케이션 계층의 프로토콜모두 서버/클라이언트간 데이터를 주고 받기 위해 사용됨HTTP (HyperText Transfer Protocol)데이터를 평문 형태로 전송하므로 데이터 탈취 위험성 존재기본적으로 `80번` 포트데이터의 민감 정보 노출가능성 有HTTPS에 비해 구현과 운영 단순HTTPS (HyperText Transfer Protocol Secure)HTTP에 데이터 암호화가 추가된 프로토콜, 데이터를 암호화하여 전송하므로 중간 공격자의 데이터 읽고 쓰기 방지기본적으로 `443번` 포트데이터 가로채기를 방지하므로 보안 수준 높음서버의 신원을 확인하는 SSL/TLS 인증서가 필요하며, 이로 인해 사용자에게 신뢰성 글 제공📌 최근에는 대부분의 웹사이트가 HTTPS를 기..
TCP / IP 4계층 모델, PDU
·
Computer Science/네트워크
TCP / IP 4계층실제 인터넷에서 널리 쓰이는 모델로, OSI 7계층 모델을 4단계로 단순화한 버전 OSI 7계층: 네트워크를 이론적으로 기술하고 이해할 때 주로 활용TCP/IP 4계층 : 구현, 네트워크 프로토콜에 중점을 둔 네트워크 참조 모델계층 간 데이터 송수신 과정컴퓨터를 통해 다른 컴퓨터로 데이터를 요청하면 어떤 일이 일어날까기본 개념캡슐화상위 계층의 `헤더`와 `데이터`를 하위 계층의 데이터 부분에 포함 시키고 해당 계층의 헤더를 삽입하는 과정역캡슐화하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정캡슐화된 데이터를 받게 되면, 링크 계층에서부터 타고 올라오면서 프레임화 된 데이터는 다시 패킷화를 거쳐 세그먼트& 데이터그램화를 거쳐 메시지화 되는 역캡슐화 과정 발생0, ..
OSI 7계층
·
Computer Science/네트워크
OSI 7계층 (Open Systems Interconnection 7 Layers)네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준 모델로, ISO(국제 표준화기구)에서 정의각 계층은 네트워크에서 데이터가 어떻게 생성, 전송, 수신 되는지 단계별로 역할을 나눔계층대표 장비/ 프로토콜물리 계층허브, 리피터, 케이블데이터 링크 계층스위치, 브리지, 랜카드네트워크 계층라우터, IP, ICMP전송 계층TCP, UDP세션 계층NetBIOS, SAP표현 계층JPEG, MPEG, ASCII응용 계층HTTP, FTP, SMPTP계층을 나눈 이유 ❓흐름을 한 눈에 알아보기 쉽고, 특정한 곳에 이상이 생기면 다른 단계의 장비 & 소프트웨어를 건들지 않고 이상이 생간 단계만 고칠 수 있기 때문에1) 물리 계층 (P..
[자료구조] 배열 & 리스트, 스택 & 큐
·
Computer Science
배열 (Array)메모리의 연속 공간에 값이 채워져있는 형태의 자료구조배열의 값은 인덱스를 통해 참조 가능하며, 선언한 자료형의 값만 저장특징인덱스를 사용하여 값에 바로 접근 가능새로운 값 삽입 또는 특정 인덱스 값 삭제가 어려움. 삽입/삭제 시 해당 인덱스 주변 값을 이동시켜야 함배열의 크기는 선언할 때 지정, 한 번 선언하면 크기 변경 불가능시간 복잡도인덱스 접근O(1)삽입 / 삭제O(N) 리스트 (List)값과 포인터를 묶은 `노드`라는 것을 포인터로 연결한 자료구조특징인덱스가 없어서, 값에 접근하려면 HEAD 포인터부터 순서대로 접근포인터로 연결돼 있어서, 삽입/삭제 연산 속도 빠름선언할 때 크기 별도 지정X, 크기가 변하기 쉬운 데이터를 다룰 떄 적절포인터 저장 공간이 필요하여 배열보다 구조 복..
동기화 문제, 세마포어 & 뮤텍스
·
Computer Science/운영체제
동기화 (Synchronization)프로세스들 간에 자원에 대한 접근 순서를 정하거나 특정 기능의 실행 순서를 정하는 행위즉, 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것프로세스의 코드 영역 中 공유 자원을 접근하는 코드를 `임계 영역`이라고 부름경쟁 조건 문제 = 임계 영역의 문제경쟁 조건 (Race Condition)여러 개의 스레드나 프로세스가 동시에 공유 자원에 접근하면서, 실행 순서에 따라 결과가 달라지는 문제즉, 누가 먼저 실행되느냐에 따라 결과가 달라짐이는 예측 불가능한 결과나 시스템의 오류를 초래할 수 있음왜 경쟁 조건이지 ❓여러 스레드 (프로세스)가 공유 자원에 먼저 접근하려고 `경쟁(Race)`하기 때문경쟁 결과에 따라 의도치 않게 동작할 수 있으므로 `..
인터럽트 (Interrupt) & 시스템 콜
·
Computer Science/운영체제
인터럽트 (Interrupt)프로그램을 실행하는 도중 예기치 못한 상황이 발생할 경우CPU가 현재 수행 중인 작업을 일시 중단하고, 다른 작업을 수행하도록 하는 메커니즘구조하드웨어 장치마다 `컨트롤러`라고 불리는 작은 CPU 존재컨트롤러는 장치로부터 출입하는 데이터를 임시로 저장하기 위한 `Local Buffer`라는 `작은 메모리`를 가짐ex) 디스크 = 디스크 컨트롤러 / 메모리= 메모리 컨트롤러개념가정 : 디스크에서 데이터를 읽어오는 작업 中디스크 컨트롤러가 디스크에서 내용을 읽어 로컬 버퍼에 저장.저장하는 작업의 완료 여부는 CPU가 체크하는 것이 아닌, 장치의 컨트롤러가 인터럽트 신호 발생하여 CPU에게 전달 📌 컨트롤러들이 CPU의 서비스가 필요할 때 이를 통보하는 방법 = 인터럽트기본적으로..