2008년 8월 26일 화요일

Unix syn_sent

TCP는 Transmission Control Protocol(TCP)의 약자로 복잡한 네트워크 프로그램 혹은 일반적인 프로그램에서 많이 쓰는 프로토콜입니다.

UDP는 User Datagram Protocol(UDP)의 약자로, 네트워크에 데이터(패킷)만 날리면 해당 컴퓨터에 바로 데이터가 날라오는, 거의 '연결'을 고려하지 않고 '데이터의 전송'만을 고려한 프로토콜입니다. 단순 데이터 전송을 위해 많이 쓰이는 프로토콜입니다.

TCP 프로토콜에서는 SYN와 ACK라는 특수 패킷(data)이 정의되어 있습니다. 이 패킷은 한 PC가 다른 PC로 연결 요청을 할 때, 연결을 승낙하기 위해 거치는 일련의 절차 중에 보내지는 패킷인데요. TCP 프로토콜은 연결을 수락하기 위해 3-way handshaking이라 불리는 절차를 진행합니다. 쉽게 말해 A PC에서 B PC로 tcp 규약으료 연결된다면, A PC가 B PC로 SYN이라는 패킷을 보내면, B PC는 A PC로 ACK라는 패킷을 보내고, 다시 A PC가 B PC로 SYN을 보내야 그제서야 연결이 수락(ESTABLISHED)됩니다.

SYN_SENT는 본인의 컴퓨터에서 상대방 컴퓨터로 연결을 시도하기 위해 SYN 패킷을 보냈음을 의미하며, 아직 ACK 패킷이 오지 않은 상태(어쩌면 상대 컴퓨터가 오프라인(offline)상태, 혹은 자신 컴퓨터(로컬 컴퓨터)가 offline 상태)임을 의미합니다.

2008년 5월 7일 수요일

오라클 초보 사용자들이 실수하는 것들

1. 인덱스를 활용하지 못함.
- 인덱스가 걸려 있는 컬럼을 변형시킨다. 즉, 중급사용자일 경우는 일부러 그렇게 하는 경우도 있지만, 초보자는 모르고 그렇게 한다.
예) -- username에 인덱가 있음.
정상
select * from depte where username = 'KOREA';

비정상
select * from depte where upper(username) = 'KOREA'; -- 대소문자 구분 안할려고
--> 한가지 형태(대,소문자)를 원한다면 입력할때 변형해서 넣는게 좋을 듯

2. NULL에 대한 개념 부족
- 컬럼 값이 null인 경우에도 인덱스가 탄다고 생각함.(물론, 특별한 방법으로 인덱스가 타게 할 수 도 있음.)
- 다른 값과 비교가 된다고 생각함.
--> 일반적으로 null의 특징은 비교도 안되고, 연산도 안되고, 아무것도 안된다고 생각하면 됨
예) dept table에 dept_no가 1,2,null 이 들어가 있을 경우
- null 인 값을 찾고 싶으면
select * from dept where dept_no is null; (O)
select * from dept where dept_no < 1 ; (X) -- 결과가 없음
select * from dept where dept_no <> 1 ; (X) -- dept_no가 2인 것만 나옴.

--> NULL 처리하는 것이 부담스럽거나 아니면 컬럼값이 Y/N으로 정해져 있다면 컬럼에 디폴트 값을 설정하는게 바람직하다.

윈도우 비스타(vista)에서 텔넷(telnet) 사용하기

Vista에서는 실행창에서 telnet 을 입력해도 텔넷이 실행되지 않는다.
없는 명령어라고 나옴.

따라서, 아래와 같이 설정해야 함.

제어판 -> 프로그램 -> 프로그램 및 기능을 선택

그럼 여러 메뉴들이 보이는데..

"Windows 기능 사용 / 사용 안함"을 클릭.

그러면 사용할 수 있는 여러가지 기능들을 선택할 수 있음(Windows 기본 게임이 없는 경우 여기서 체크하면 생김..)

밑으로 내리면서 잘 찾아보면 "telnet client" 가 있음

그걸 선택하고 확인을 누르면 1~2분만 기다리면 Telnet을 사용할 수 있게 됨.