CS (8) 썸네일형 리스트형 TCP/IP의 4계층 이해하기 TCP/IP는 네트워크 통신에서 핵심적인 역할을 하는 프로토콜 집합이다.HTTP/HTTPS 를 비롯한 많은 프로토콜이 TCP/IP에서 동작한다. 나는 이해가 어려웠기 때문에 나중에 복습을 위해서라도 정리를 해본다! 1. TCP/IP 란? 사람 간의 대화처럼 컴퓨터와 네트워크 간의 통신에도 일정한 규칙이 필요하다. 그리고 그 규칙을 프로토콜이라고 한다. 특히 인터넷과 관련된 모든 프로토콜들의 집합을 TCP/IP 라고 한다. 2. TCP/IP의 4계층 TCP/IP에서의 통신은 4개의 계층으로 구분지을 수 있다. 이렇게 프로토콜을 계층화하면 어디에서 에러가 발생했는지 파악하기 쉽고 설계도 쉬워지기 때문에 효율적이다. 따라서 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 액세스 계층으로 구성된다. 데이.. TCP의 3way handshake 과정 TCP는 웹 브라우저가 서버와 연결할 때 신뢰성 있게 연결해주는 프로토콜이다. 신뢰성을 위해 흐름제어, 혼잡제어를 수행한다. 이러한 것을 제어하는 정보는 TCP프로토콜의 Header 부분에 포함되어있다. 또한 Header 를 제외한 TCP가 실을 수 있는 데이터 크기를 세그먼트(segment)라고 한다. 통신 전에 송신 측과 수신측이 잘 연결되었는지 서로 확인 후에 통신하게 되는데 3단계를 거치기 때문에 이 과정을 3way handshake라고 한다. 1. 먼저, 송신자가 수신자에게 SYN을 날려 통신이 가능한지 확인한다. 이 때 포트가 열려있어야 한다. 2. 이후 수신자가 송신자로부터 SYN을 받고 SYN/ACK를 보낸다. 여기서 ACK는 응답을 받았다는 의미이다. 3. 이후로 송신자가 수신자로부터 S.. 가상 메모리와 물리 메모리 가상 메모리( = 논리 메모리)가상 메모리는 실제 전체 프로세스의 메모리 중에서 초기에 필요한 메모리만 할당하는 것을 말한다.장점물리 메모리의 크기보다 큰 프로그램들의 실행을 가능하게 한다.더 많은 프로그램을 동시에 실행할 수 있기 때문에 CPU 이용률과 처리율이 높아진다. swap에 필요한 입출력이 줄어들기 때문에 프로그램들이 빠르게 실행된다. (프로그램이 필요로 하는 데이터 중 일부만 주기억장치에 올라가 있기 때문에, 필요하지 않은 데이터는 보조저장장치에 남아있게 된다. 따라서 주기억장치와 보조저장장치 사이를 주고받아야 하는 데이터의 양이 줄어들어 입출력 작업이 줄어들게 된다.)가상메모리의 구조가상 메모리는 불연속 메모리 할당 방식을 취한다. 이것에 대한 정보는 길어지기 때문에 간단하게.. IP주소의 구조 네트워크 간의 통신을 위해서는 IP 주소가 필요하다. 이것은 각 네트워크를 식별하는 주소이다.IP 주소에 대해 알아보자! 1. IP주소(IPv4의 구조) 일반적으로 사용하는 IP주소는 위 사진과 같은 IPv4 구조이다.v4라는 얘기인데 4바이트, 즉 32비트의 주소를 갖는다. 각 자리가 8비트이기 때문에 0부터 255까지의 값을 갖는다.따라서 0.0.0.0부터 255.255.255.255까지가 된다. 또한 IP주소는 네트워크 주소와 호스트 주소로 나뉜다. 예전에는 각 자리를 클래스로 부여하여 범위를 나타내었다. 해당 방식은 클래스풀 방식이라고 하는데 궁금하다면 더 찾아보면 될 것 같다.이 방식에서 할당할 호스트 주소가 부족해짐에 따라 주소를 유연하게 나눌 수 있는 방식으로 변경하였다.그 방식은 서브넷 마.. 동기와 비동기, Blocking과 Non-Blocking 여러 작업의 수행 방식을 알아보자!동기 vs 비동기메소드를 실행시킴과 동시에 반환 값이 기대되는 경우를 동기라고 표현하고 그렇지 않은 경우에 대해서 비동기라고 표현한다. 동시에라는 말은 실행되었을 때 값이 반환되기 전까지는 Blocking되어 있다는 것을 의미한다.비동기의 경우, Blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task를 위임하고 바로 다음 코드를 실행하기 때문에 기대되는 값이 바로 반환되지 않는다. 동기와 비동기의 판단 기준은 두 개 이상의 작업 시간을 맞추는지 아닌지이다.동기(syncronous)동기란 여러 작업이 있을 때 서로 시간을 맞춰야 하는 것을 말한다.먼저 시작 시간 또는 종료 시간을 동일하게 맞추는 경우가 있다 (다중 CPU에서 병렬처리)또한 하나의.. 멀티 프로세스 vs 멀티 스레드 멀티 프로세스 멀티 프로세스는 여러개의 프로세스를 사용해서 작업을 병렬적으로 수행하는 것이다. 장점 독립된 구조로 안전성이 높다는 장점이 있다. 프로세스 중 하나에 에러가 발생하여도 다른 프로세스에 영향을 주지 않는다. 예를 들어 하나의 탭에서 문제가 발생하여도 다른 탭에는 영향을 주지 않는다. 문제점 독립된 메모리 영역이기 때문에 작업량이 많을수록(Context Switching시 캐시 메모리 초기화가 필요) 오버헤드가 발생하여 성능저하가 발생 할 수 있다. 프로세스 사이의 통신이 복잡하다. 멀티스레드 멀티스레드는 여러개의 스레드를 사용해서 작업을 병렬적으로 수행한다. 장점 시스템 자원소모 감소 (자원의 효율성 증대) 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어 자원을 효율적으로 관리할 수 있.. 프로세스와 프로세스 메모리 블록(PCB)의 구조 저번에 프로세스와 스레드의 차이를 다루었다. 여기서 프로세스는 프로그램이 실행될 때의 작업의 단위라고 하였는데 프로세스가 생성될 때는 프로세스 메모리 블록이라고 하는 PCB도 생성이 된다. 그리고 이 PCB는 프로세스가 완료되면 소멸된다. 프로세스와 PCB에 대해서 자세히 알아보자! ⭐프로그램 실행 과정 프로그램이 실행될 때 보조기억장치에 있는 프로그램으로부터 프로세스 이미지를 생성하는데 운영체제가 이 생성된 프로세스 이미지를 주기억장치로 적재시켜 사용한다. 프로세스 이미지에는 코드 영역, 데이터 영역, 스택 영역, 힙 영역이 포함된다. 즉 코드와 데이터의 초기상태가 포함되어있다. CPU는 프로세스 이미지의 내용을 참조하여 프로세스가 초기화되고 프로그램을 실행한다. 그리고 이 실행이 시작될 때 PCB가 .. 프로세스와 스레드의 차이 1. 프로세스 프로세스는 운영체제로부터 자원을 할당받은 작업의 단위 프로그램은 아직 실행되지 않은 파일 그 자체를 말한다. 윈도우의 *.exe 파일이나 MacOS의 *.dmg 파일 등등 사용자가 눌러서 실행하기 전의 파일을 말한다. 쉽게 말해서 그냥 코드 덩어리다. 운영체제(OS)는 정적인 상태의 프로그램을 실행하고자 할 때 메모리 영역에 할당한다. 이때 이 프로그램이 동적인 상태인 프로세스가 된다. 2. 스레드 스레드는 프로세스가 할당받은 자원을 이용하는 실행흐름의 단위 과거에는 이 프로그램을 실행할 때 프로세스 하나만을 가지고 실행했지만 프로그램이 복잡해지면서 어려움이 생겼다. 따라서 프로세스와는 다른 더 작은 실행 단위 개념이 필요하게 되었고, 이 개념이 바로 스레드다. 스택을 스레드마다 독립적으로.. 이전 1 다음